如何使用Perl中的引用复制数组?

Jer*_*mey 4 arrays perl hash pointers

如果我执行以下操作,它可以正常工作:

print $ref->{element}->[0]->{data};
Run Code Online (Sandbox Code Playgroud)

我想看看数组中有多少引用,以便我可以遍历它们,但我很难做到这一点.

这是我尝试过的代码,但它不起作用:

my @array = @$ref->{element};

foreach(@array) {
    print $_->{data};
}
Run Code Online (Sandbox Code Playgroud)

我收到"Not a ARRAY reference"错误

mob*_*mob 8

列表的哈希是那样棘手的.@$ref->{element}被解析为(@$ref)->{element},取消引用$ref而不是$ref->{element}.

尝试

my @array = @{$ref->{element}}
Run Code Online (Sandbox Code Playgroud)

要么

my $size = scalar @{$ref->{element}}
Run Code Online (Sandbox Code Playgroud)

perllol中的血腥细节.