Perl - 遍历哈希数组问题
Perl - Iterating through an array of hashes issue
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 行上收到一个错误,告诉我 'Global symbol "%thing" requires explicit package name'.
我知道这与引用哈希值或密钥有关,但我现在不知所措。非常感谢任何帮助。
您有一个 hashrefs 数组,而不是哈希数组。使用 hashrefs 时需要使用 $thing->{special}
。
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 行上收到一个错误,告诉我 'Global symbol "%thing" requires explicit package name'.
我知道这与引用哈希值或密钥有关,但我现在不知所措。非常感谢任何帮助。
您有一个 hashrefs 数组,而不是哈希数组。使用 hashrefs 时需要使用 $thing->{special}
。