加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读