Perl散列引用作为子例程的参数-不能使用字符串作为HASH引用

5sxhfpxr  于 2022-11-24  发布在  Perl
关注(0)|答案(1)|浏览(183)

我试图准备一个小脚本与散列和子例程。老实说,我是一个新手在perl。有人能告诉我什么是错误的下面的代码。我得到不能使用字符串(“1”)作为一个散列引用错误。

#!/usr/bin/perl
use strict;
use warnings;
no warnings 'uninitialized';

use Data::Dumper;
my %match_jobs;

push @{$match_jobs{'1'}},
  {'job_id'=>'13',
   'job_title'=>'Article_9',
   'job_description'=>'899.00'
};

hash_iterate(\%match_jobs);

sub hash_iterate{
  my $job_match=@_;
  print Dumper($job_match);
  foreach my $match_job_row (keys %$job_match) {
    my $job_id_ll=$job_match->{$match_job_row}->{'job_id'};
    print $job_id_ll;
  }
}

输出:-当www.example.com第17行使用“strict refs”时,不能使用字符串(“1”)作为HASH引用perl-hash.pl。
谢谢你的帮助!

uoifb46i

uoifb46i1#

当你说

my $job_match=@_;

我们在标量上下文中使用@_,它会得到数组中元素的个数。

my ($job_match) = @_;

我个人更喜欢:

my $job_match = shift;

如果没有给定数组,shift将对@_进行运算,但我想这是个人喜好的问题。

相关问题