我已经构建了一个包含数组数组的哈希,我们称之为 %hash_multidim,这样 Data::Dumper 的输出如下所示:
'Key1' => [
[
'-3.81',
'-1.91',
'-1.86',
'-1.70'
],
[
'1.35',
'1.04',
'-1.01',
'-2.69'
]
],
'Key2' => [
[
'-1.63'
],
[
'-1.17'
]
],
现在,我想在这个结构的最底层访问和执行操作。例如,对于“Key1”,我想找到第 1 行的平均值(也就是 [0] 处数组的平均值)。使用 List::Util qw(sum),我编写了一个名为 mean 的子程序:
sub mean {
return sum(@_)/scalar(@_);
}
但是,如果使用子程序,例如:
my $test = mean($hash_multidim{Key1}[0]);
print $test;
我没有得到我所期望的。事实上,我得到:
43678288
我哪里做错了?如果我尝试评估结果
$hash_multidim{Key1}[0]
一切看起来都很干净。例如,
@test2 = $hash_multidim{Key1}[0];
print Dumper(\@test2);
产生这个输出:
$VAR1 = [
[
'-3.81',
'-1.91',
'-1.86',
'-1.70'
]
];