在Perl中,如何从hashrefs数组中的引用中访问值?
发布时间:2020-12-15 23:24:49 所属栏目:大数据 来源:网络整理
导读:我有一系列匿名哈希的引用.从对该数组的引用$allDirArray,我想访问对应于键’dir’的值.目前我收到错误: Can't use string ("HASH(0x100878050)") as a HASH ref while "strict refs" in use at nameOfProgram.pl line 148. 我的代码: my $tempDir = ${$al
我有一系列匿名哈希的引用.从对该数组的引用$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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |