数组 – Perl中的引用:哈希数组

前端之家收集整理的这篇文章主要介绍了数组 – Perl中的引用:哈希数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想迭代一个哈希数组的引用,而不必制作本地副本,但我一直得到不能使用字符串(“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.

猜你在找的Perl相关文章