我正在尝试访问哈希数组的元素。
这是我的变量$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
行。
答案 0 :(得分:4)
首先必须取消引用哈希数组。所以,
foreach (@$tst) {
print $_->{ID}, "\n";
}
应该打印所有ID。
答案 1 :(得分:3)
您接受的答案是正确的,但您的数据结构是可以通过ID值索引数组。也就是说所有元素都是$tst->[$id]{ID} == $id
。
因此,要打印NAME
4的ID
字段,您可以说
print $tst->[4]{NAME}, "\n";
你会看到
Custom 4
我希望这会有所帮助。