我刚刚开始学习 Perl。 我对访问哈希值有点困惑。下面是我尝试访问散列内的散列值的代码。 由于我使用简单的文本编辑器进行编码,因此我无法找出问题所在。请帮忙
my %box = (
Milk => {
A => 5,
B => 10,
C => 20,
},
Chocolate => {
AB => 10,
BC => 25,
CD => 40,
},
);
foreach my $box_key(keys %box) {
foreach my $inside_key (keys %box{box_key})
print "$box_key"."_$inside_key""is for rupees $box{box_key}{inside_key}";
}
最佳答案
如果语法是
keys %hash
对于哈希来说,它是
keys %{ ... }
用于哈希引用。在本例中,引用存储在 $box{$box_key}
中,因此您可以使用
keys %{ $box{$box_key} }
此外,您还可以在几个实际想要使用 $box_key
命名的元素的地方访问名为 box_key
和 inside_key
的元素和$inside_key
。
最后,您可以在变量名称周围使用花括号来指示 Perl 变量名称的结尾位置。
for my $box_key (keys %box) {
for my $inside_key (keys %{ $box{$box_key} }) {
print "${box_key}_$inside_key is for rupees $box{$box_key}{$inside_key}\n";
}
}
关于Perl:访问散列内的散列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17036955/