在Perl中,如何从hashrefs数组中的引用中访问值?

前端之家收集整理的这篇文章主要介绍了在Perl中,如何从hashrefs数组中的引用中访问值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一系列匿名哈希的引用.从对该数组的引用$allDirArray,我想访问对应于键’dir’的值.目前我收到错误

Can't use string ("HASH(0x100878050)") as a HASH ref while "strict refs" 
in use at nameOfProgram.pl line 148.

我的代码

my $tempDir = ${$allDirArray}[$i]{'dir'};

解决方法

错误消息表明您实际上尝试使用字符串“HASH(0x100878050)”作为hashref.所以我怀疑你已经设法将你的哈希字符串化(即,你将它们用作字符串,而Perl将它们变成了字符串).这种情况的一种方法是,如果将hashref分配给散列键(散列键只能是字符串),或者通过引用类似$array [0] =“$hashref”的赋值中的变量.

所以在${$allDirArray} [$i]里面是一个包含“HASH(0x100878050)”的字符串,字面意思是字符串.不是哈希.

最好的办法是确认这可能是为了转储数据结构.您可以使用Data::Dumper执行此操作:

use Data::Dumper;
print Dumper($allDirArray);

猜你在找的Perl相关文章