我有一系列匿名哈希的引用.从对该数组的引用$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);