【发布时间】:2013-11-01 16:44:23
【问题描述】:
我已经用哈希值填充了数组@a,因此:
$a[0]{'keyA'}{'keyB'}
给我一个价值。
我现在想在数组中选择一个元素(比如索引0)并按字母顺序遍历散列中的所有元素,如下所示:
for my $keyA (sort keys $a[0]) {
for my $keyB (sort keys $a[0]{$keyA}) {
print $a[0]{$keyA}{$keyB};
}
}
我不知道为什么,但 Perl 完全跳过了循环。我可以在使用 Eclipse 调试器单步执行时看到这一点。
我的数组的数据::转储:
$VAR1 = [
{},
{
'Z' => { 'Z' => 1 },
'G' => { '' => 1 },
},
undef,
{
'A' => { 'A03' => 1, 'A02' => 1 },
'G' => { 'G29' => 3 },
'Z' => { 'Z' => 1 },
'F' => { 'F24' => 2, 'F27' => 1 },
},
{
'A' => { 'A02' => 2 },
'O' => { 'O62' => 1 },
'B' => { 'B05' => 1 },
},
];
任何帮助将不胜感激。
【问题讨论】:
-
你永远不应该说“Perl 似乎不喜欢..”之类的话。您应该复制/粘贴错误。
-
use Data::Dumper; print Dumper \@a;的输出是什么?这将向我们展示您正在谈论的数据结构。