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 prog 中有上述数组散列的散列。如何从上述数据结构中访问元素“199”。

4

1 回答 1

12

这很简单。第一个是哈希,所以你不需要取消引用它。数据结构中的每个后续“容器”都是一个引用,因此您可以使用->运算符取消引用该结构。大括号内的东西是{}散列(键/值对)引用,需要花括号去引用,而方括号内的东西[]是数组引用,需要方括号去引用。

现在它真的只是把东西排好并数到 3:

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

您也可以省略箭头,然后继续:

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

您应该阅读perlreftut,其中说:

在两个下标之间,箭头是可选的。

于 2012-09-07T10:45:53.720 回答