加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数组 – 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读