[英]Perl access elements in an array hash
我正在尝试访问哈希数组的元素。
这是我的变量$tst
的转储
[
{ DESCRIPTION => "Default", ID => 0, NAME => "Default", VERSION => "1.0" },
{ DESCRIPTION => "", ID => 1, NAME => "Custom 1", VERSION => "1.1" },
{ DESCRIPTION => "", ID => 2, NAME => "Custom 2", VERSION => "1.0" },
{ DESCRIPTION => "", ID => 3, NAME => "Custom 3", VERSION => "6.0" },
{ DESCRIPTION => "", ID => 4, NAME => "Custom 4", VERSION => "1.0" },
]
我正在尝试访问元素的值。 例如,如果ID为4,则返回NAME
字段。
我尝试打印ID
所有值,但没有用。
从网上看,我使用了下面的Perl代码变体
foreach ($tst) {
print "$_->{'ID'}, \n";
}
并且它给出以下错误:
Not a HASH reference at file.pl line 22.
注意 :第22行是上方的print
行。
您首先必须取消引用哈希数组。 所以,
foreach (@$tst) {
print $_->{ID}, "\n";
}
应该打印所有ID。
您接受的答案是正确的,但是您的数据结构使您可以通过ID值对数组进行索引。 也就是说,所有元素的$tst->[$id]{ID} == $id
。
因此,要打印ID
4的NAME
字段,您可以说
print $tst->[4]{NAME}, "\n";
你会看到
Custom 4
我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.