2012-09-07 102 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