perl – 这个数据结构如何工作?

前端之家收集整理的这篇文章主要介绍了perl – 这个数据结构如何工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须对现有脚本进行一些调试,而不需要了解有关perl的大量知识.

此脚本使用这些数据类型来存储文件中的所有字段:

${$LineRefs->{FIELD_NAME}}

我一直试图弄清楚如何通过迭代这个标量/散列/数组或者它可能是什么来分别找到所有可能的字段,但我不知道如何.

有谁能请我指出正确的方向?

解决方法

这当然很奇怪

$LineRefs是对哈希的引用,该哈希具有一个带有键FIELD_NAME的元素,其值是对标量的引用

像这样

use v5.14;

my $LineRefs = {
    FIELD_NAME => \99,};

print ${ $LineRefs->{FIELD_NAME} },"\n";

产量

99

对哈希和数组的引用很常见,因为它们允许大型数据结构由单个标量表示.但是对标量的引用远没有用,因为它们只是用另一个标量替换标量

对不起,谢谢@glennjackman我匆匆忙忙地读了这个问题,并假设这是为什么哈希元素被解除引用为标量

I’ve been trying to figure out how to find all possible fields separately by iterating over this scalar/hash/array or whatever it may be but I have no clue how

你正在处理一个哈希,它就像一个数组但是由字符串(键)而不是整数(索引)索引

您可以使用keys,valueseach迭代哈希

您可以像这样打印所有键及其值.由于您的变量$LineRefs是哈希引用,因此您需要将其取消引用为%$LineRefs

for my $key ( keys %$LineRefs ) {
    my $value = $LineRefs->{$key};
    print "$key => $value\n";
}

如果您的哈希值确实是对标量的引用,那么您将看到为值创建的SCALAR(0x640448)之类的内容

猜你在找的Perl相关文章