В одной из моих основных (или основных) подпрограмм у меня есть два или более хешей. Я хочу, чтобы подпрограмма foo () получала эти несколько возможных хешей как отдельные хеши. Прямо сейчас у меня нет предпочтений, если они идут по значению или в качестве ссылок. Я борюсь с этим в течение последних многих часов и был бы признателен за помощь, так что мне не нужно оставлять Perl для PHP! (Я использую 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,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) и перебрать их.
Как это сделать в последнем фрагменте кода выше?