perl – 这个数据结构如何工作?
我必须对现有脚本进行一些调试,而不需要了解有关perl的大量知识.
此脚本使用这些数据类型来存储文件中的所有字段: ${$LineRefs->{FIELD_NAME}} 我一直试图弄清楚如何通过迭代这个标量/散列/数组或者它可能是什么来分别找到所有可能的字段,但我不知道如何. 有谁能请我指出正确的方向? 解决方法
这当然很奇怪
$LineRefs是对哈希的引用,该哈希具有一个带有键FIELD_NAME的元素,其值是对标量的引用 像这样 use v5.14; my $LineRefs = { FIELD_NAME => 99,}; print ${ $LineRefs->{FIELD_NAME} },"n"; 产量 99 对哈希和数组的引用很常见,因为它们允许大型数据结构由单个标量表示.但是对标量的引用远没有用,因为它们只是用另一个标量替换标量 对不起,谢谢@glennjackman我匆匆忙忙地读了这个问题,并假设这是为什么哈希元素被解除引用为标量
你正在处理一个哈希,它就像一个数组但是由字符串(键)而不是整数(索引)索引 您可以使用 您可以像这样打印所有键及其值.由于您的变量$LineRefs是哈希引用,因此您需要将其取消引用为%$LineRefs for my $key ( keys %$LineRefs ) { my $value = $LineRefs->{$key}; print "$key => $valuen"; } 如果您的哈希值确实是对标量的引用,那么您将看到为值创建的SCALAR(0x640448)之类的内容 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |