5
로컬 복사본을 만들 필요없이 해시 배열에 대한 참조를 반복하고 싶지만 ARRAY ref로 문자열 ("1")을 사용할 수 없습니다. "strict 심판 "오류. 왜? 어떻게 수정해야합니까?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