如果我执行以下操作,它可以正常工作:
print $ref->{element}->[0]->{data};
我想看看数组中有多少引用,以便我可以遍历它们,但是我很难做到这一点。
这是我尝试过的代码,但它不起作用:
my @array = @$ref->{element};
foreach(@array) {
print $_->{data};
}
我收到“Not a ARRAY reference”错误
答案 0 :(得分:8)
列表的散列很棘手。 @$ref->{element}
被解析为(@$ref)->{element}
,解除引用$ref
而不是$ref->{element}
。
尝试
my @array = @{$ref->{element}}
或
my $size = scalar @{$ref->{element}}
perllol中的Gory详细信息。
答案 1 :(得分:-2)
作为调试的一般帮助,请给Data::Dumper一下。它对于挖掘数据结构的内部结构是非常宝贵的。