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

如何将哈希传递给Perl子例程?

发布时间:2020-12-16 06:24:06 所属栏目:大数据 来源:网络整理
导读:在我的一个主要(或主要)例程中,我有两个或更多个哈希.我希望子程序foo()接收这些可能的多个哈希值作为不同的哈希值.现在我没有偏好,如果他们按价值或作为参考.我在最近几个小时内一直在努力,并且会感谢帮助,所以我不必为 PHP留下perl! (我正在使用mod_perl,
在我的一个主要(或主要)例程中,我有两个或更多个哈希.我希望子程序foo()接收这些可能的多个哈希值作为不同的哈希值.现在我没有偏好,如果他们按价值或作为参考.我在最近几个小时内一直在努力,并且会感谢帮助,所以我不必为 PHP留下perl! (我正在使用mod_perl,或将是)

现在我已经得到了一些答案,如图所示

从http://forums.gentoo.org/viewtopic-t-803720-start-0.html起

# sub: dump the hash values with the keys '1' and '3' 
sub dumpvals 
{ 
   foreach $h (@_) 
   { 
      print "1: $h->{1}   3: $h->{3}n"; 
   } 
} 

# initialize an array of anonymous hash references 
@arr = ({1,2,3,4},{1,7,8}); 

# create a new hash and add the reference to the array 
$t{1} = 5;
$t{3} = 6;
push @arr,%t; 

# call the sub 
dumpvals(@arr);

我只想扩展它,以便在转储中我可以做这样的事情:

foreach my %k ( keys @_[0]) {
    # use $k and @_[0],and others
}

语法错误,但我想你可以告诉我我正在尝试获取第一个哈希(hash1或h1)的密钥,并迭代它们.

如何在上面的代码片段中执行此操作?

解决方法

我相信这就是你要找的东西:

sub dumpvals {
    foreach my $key (keys %{$_[0]}) {
        print "$key: $_[0]{$key}n";
    }
}

>参数数组的一个元素是标量,因此您可以将其作为$_ [0]而不是@_ [0]来访问.>键操作哈希值,而不是哈希值,因此你需要取消引用,使用%>当然,键是标量,而不是哈希,所以你使用我的$键,而不是我的%键.

(编辑:李大同)

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

    推荐文章
      热点阅读