在我的主要例程中,我有两个或多个哈希表。我希望子例程foo()将这些可能的多个哈希表作为不同的哈希表接收。目前,我无所谓它们是按值传递还是按引用传递。我已经为此挣扎了许多小时,希望得到帮助,这样我就不必离开Perl去使用PHP!(我正在使用mod_perl,或者将要使用)。
目前,我已经得到了一些满足我的要求的答案,如下所示:从http://forums.gentoo.org/viewtopic-t-803720-start-0.html。
我只想扩展它,以便在dumpvals中我可以做类似于这样的事情:
语法错误,但我想你可以看出我正在尝试获取第一个哈希表(hash1或h1)的键,并对它们进行迭代。如何在上面的后面的代码片段中实现?
目前,我已经得到了一些满足我的要求的答案,如下所示:从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,3,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);
我只想扩展它,以便在dumpvals中我可以做类似于这样的事情:
foreach my %k ( keys @_[0]) {
# use $k and @_[0], and others
}
语法错误,但我想你可以看出我正在尝试获取第一个哈希表(hash1或h1)的键,并对它们进行迭代。如何在上面的后面的代码片段中实现?
use strict; use warnings;
。 - Ether