Perl的新手,所以我怀疑有一个简单的解决方案,但我无法看到尽管广泛的谷歌搜索。
my @special_things = get_special_things(\@allThings);
sub get_special_things {
my $things = shift;
my @specialThings;
foreach my $thing (@$things) {
if ($thing{special} == 1) {
push(@specialThings, $things);
}
}
return @specialThings;
}
传入的allThings数组是一个哈希数组。我在foreach行上收到错误,告诉我'全局符号'%“需要显式包名称。”
我知道这与引用哈希值或键有关,但我现在处于亏损状态。非常感谢任何帮助。
答案 0 :(得分:5)
你有一个 hashrefs 的数组,而不是哈希。在使用hashrefs时需要使用$thing->{special}
。