2012-09-07 105 views
1
my %PlannedPerWeek = (
        September => { 
          Week1 => [80, 23, 199, 45, 19, 36], 
          Week2 => [78, 21, 195, 43, 18, 36], 
          Week3 => [76, 19, 191, 41, 17, 36], 
          Week4 => [74, 17, 187, 39, 16, 36], 
        } 
    ); 

我有上述哈希值的數組在perl編散列。 如何從上述數據結構中訪問元素'199'。在perl中訪問哈希數組的散列中的元素

回答

12

這很直接。第一個是散列,所以你不需要解引用它。數據結構中的每個「容器」都是參考,因此您可以使用->運算符來取消引用該結構。大括號內的東西{}是一個散列(鍵/值對)引用,需要curl到deref,而方括號內的東西是數組引用,並且再次需要方括號做deref。

現在,它真的只是排隊的事情,數到3:

print $PlannedPerWeek{'September'}->{'Week1'}->[2]; 
               ^---- 3rd array ref element 
            ^--------------- hashref key 'Week1' 
         ^----------------------------- hash key 'September' 

你也可以離開了arrows,只是去:

print $PlannedPerWeek{'September'}{'Week3'}[2]; 

你應該閱讀perlreftut,其中說:

在兩個下標之間,箭頭是可選的。

+0

@flesk:我沒有做完;-) – simbabque

+0

對不起。我沒有意識到你的答案是多麼近。 – flesk

+0

沒問題,謝謝:) – simbabque