需要帮助从标量上下文中获取perl数组

iLi*_*irt 0 arrays perl scalar-context

我有一个perl数组,我需要以下列方式存储:

 $self->{spec}->{allImages} = @allImages;
Run Code Online (Sandbox Code Playgroud)

然后我需要稍后检索内容:

 print Dumper($self->{spec}->{allImages});
Run Code Online (Sandbox Code Playgroud)

这会产生:

 $VAR1 = 10;
Run Code Online (Sandbox Code Playgroud)

(数组中的项目数).

如何摆脱标量上下文并将$ self - > {spec} - > {allImages}作为列表返回?

And*_*ter 9

每个哈希值只能是标量.

您必须存储对数组的引用:

$self->{spec}->{allImages} = \@allImages;
Run Code Online (Sandbox Code Playgroud)

http://perldoc.perl.org/perlreftut.html将为您提供更多教程.

  • 或者是副本,``[@allImages]`,这有时是你想要的.引用是数组的替代,因此如果通过ref更改它,真实数组及其所有引用也会发生变化. (2认同)