gpt4 book ai didi

perl - 从 perl 数据结构中提取信息

转载 作者:行者123 更新时间:2023-12-02 22:33:14 24 4
gpt4 key购买 nike

由于我正在学习 Perl,请原谅一个新手问题。我有一些这样的代码:

my $familyInfo = [{
'dad' => 'donald',
'mom' => 'helen',
'sister' => 'cate',
}];

请注意,我无法以任何方式修改此代码。我想要做的是从这个数据结构中提取妈妈:

my $mother = $familyInfo{mom};
print "mother: $mother\n";

my $mother = $familyInfo[0]{mom};
print "mother: $mother\n";

这根本行不通。它不会为 $mother 分配任何内容。我不明白的是初始化创建的结构类型,以及如何使用它。如果您能提供任何有助于我理解这种扭曲语言的语法的信息,那将会很有帮助!

最佳答案

解引用有两层,外层是数组引用,内层是哈希引用。

my $mother = $familyInfo->[0]{mom};

或者换句话说,$familyInfo 持有对匿名数组的引用。只有一个元素。该元素包含对匿名哈希的引用。

与您发布的示例代码不同的重要组件是 dereferencing operator , ->

如果没有箭头运算符,您是在告诉 Perl $familyInfo[0]@familyInfo 的一个元素(它不是,@familyInfo 甚至不存在)。确实存在的是 $familyInfo;包含数组引用的标量,如果要获取其元素,则必须解除引用。 perldoc perlreftut应该有助于阐明语法。

如果以上方法对您不起作用,那么您输入的数据与您显示的不匹配。在这种情况下,使用 Data::Dumper仔细查看您的输入数据。

use Data::Dumper;
print Dumper $familyInfo;

关于perl - 从 perl 数据结构中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com