的背景
我有一个 Perl 模块,它使用数组作为输入/输出参数,如下所示:
Execute({inputfile => $req->{modules}.'filename', param => \@xchange});
在模块内部构建一个哈希并通过引用返回
$param[0] = \%values;
这一切都很好(我认为),print Dumper @xchange[0];
并将输出我想要的内容为
$VAR1 = { '33' => 'Title1', '53' => 'Title2', '21' => 'Title3' };
目标
我想遍历内容并一一打印键/值对,例如像这样
%testhash = ('33' => 'Test1', '53' => 'Test2', '21' => 'Test3' );
foreach $key (keys %testhash) {
print "LOOP: $key, value=$testhash{$key}\n";
}
print Dumper \%testhash;
此循环确实按预期工作,并通过与上面的数组元素相同的输出转储我的 testhash
$VAR1 = { '33' => 'Test1', '53' => 'Test2', '21' => 'Test3' };
问题
现在的问题似乎是,虽然这两种结构看起来是同一种结构,但我无法理解,如何正确访问存储在 @xchange[0] 中的返回散列。
我确实尝试过%realhash = @xchange[0];
and %realhash = \@xchange[0];
,但随后print Dumper \%realhash;
会分别输出$VAR1 = { 'HASH(0xa7b29c0)' => undef };
or $VAR1 = { 'REF(0xa7833a0)' => undef };
。
所以我要么需要一种方法来获取干净的新哈希中的@xchange[0] 的内容,要么需要一种方法来遍历@xchange[0] 元素内的哈希。
我想我被整个哈希引用概念搞砸了,但我在这里不知所措,想不出另一种方法来谷歌搜索它。