Je veux parcourir une référence à un tableau de hachages sans avoir à faire de copies locales, mais je continue d'obtenir Ne peut pas utiliser string ("1") comme ref ARRAY tandis que "strict refs "erreurs. Pourquoi? Comment je le répare?Références en Perl: tableau de hachages
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;
}
Cette erreur fréquente provient de ne pas comprendre le contexte. L'affectation à un scalaire produit un contexte scalaire, ainsi '@ _' est évalué comme scalaire (ce qui donne la longueur). – daotoad