如何将哈希传递给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]来访问.>键操作哈希值,而不是哈希值,因此你需要取消引用,使用%>当然,键是标量,而不是哈希,所以你使用我的$键,而不是我的%键. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |