5
我想通過對散列數組的引用進行迭代,而不必製作本地副本,但我一直收到不能使用字符串(「1」)作爲ARRAY引用,而「嚴格參考「錯誤。爲什麼?我如何解決它?Perl中的引用:散列數組
sub hasGoodCar {
my @garage = (
{
model => "BMW",
year => 1999
},
{
model => "Mercedes",
year => 2000
},
);
run testDriveCars(\@garage);
}
sub testDriveCars {
my $garage = @_;
foreach my $car (@{$garage}) { # <=========== Can't use string ("1") as an ARRAY ref while "strict refs" error
return 1 if $car->{model} eq "BMW";
}
return 0;
}
這個常見的錯誤來自不理解的上下文。賦值給一個標量產生一個標量上下文,因此'@ _'被評估爲一個標量(這會產生長度)。 – daotoad 2010-07-16 05:11:42