{
'A' => ['B'], //hash of array
'C' => {'D' => [ 'E']} //hash of hash of array
}
尝试解析数组哈希的哈希值时。得到“不是HASH参考”错误。即使我尝试使用存在和定义的关键字来避免此错误。但结果是同样的错误。
从上面我只需要迭代数组哈希的哈希值。
foreach my $keys (keys %$hash){
print "$keys";
if (defined $hash->{$keys}->{maptype}){
foreach my $array_element ( @{$hash->{$keys}->{'D'}} ) {
print "$array_element");
}
}
}
答案 0 :(得分:0)
不确定这是否是最佳做法,但是:
my $hash = { A => ['B'], C => {D => ['E'], F => [qw(G H I)]}, J=>42 };
for my $key (keys %$hash) {
if (ref $hash->{$key} eq 'HASH') {
for my $subkey (keys %{$hash->{$key}}) {
say "$key => $subkey => [", join(",", @{$hash->{$key}{$subkey}}), "]";
}
}
}
输出
C => D => [E]
C => F => [G,H,I]