繁体   English   中英

数组哈希中的Perl访问元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM