数组 – Perl中的引用:哈希数组
发布时间:2020-12-16 06:27:11 所属栏目:大数据 来源:网络整理
导读:我想迭代一个哈希数组的引用,而不必制作本地副本,但我一直得到不能使用字符串(“1”)作为ARRAY引用,而“严格引用”错误.为什么?我如何解决它? sub hasGoodCar { my @garage = ( { model = "BMW",year = 1999 },{ model = "Mercedes",year = 2000 },); run
我想迭代一个哈希数组的引用,而不必制作本地副本,但我一直得到不能使用字符串(“1”)作为ARRAY引用,而“严格引用”错误.为什么?我如何解决它?
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; } 解决方法
这条线
my $garage = @_; 将@_的长度分配给车库.在调用testDriveCars方法时,您传递一个arg,因此长度为1,因此您的错误消息为“1”. 你可以写 my ( $garage ) = @_; 也许 my $garage = shift; 代替. 在发布@garage之后,帖子中也有一个缺少的分号. 有关详细信息,请参阅perldoc perlsub. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |