How do I access values in a Perl Hash of Array of Arrays? -
i have built hash containing arrays of arrays, let's call %hash_multidim, such output data::dumper looks so:
'key1' => [ [ '-3.81', '-1.91', '-1.86', '-1.70' ], [ '1.35', '1.04', '-1.01', '-2.69' ] ], 'key2' => [ [ '-1.63' ], [ '-1.17' ] ],
now, access , perform manipulations on bottom-most level in structure. example, 'key1' want find mean of in row 1 (aka mean of array @ [0]). using list::util qw(sum), have written subroutine called mean:
sub mean { return sum(@_)/scalar(@_); }
however, if using subroutine, eg:
my $test = mean($hash_multidim{key1}[0]); print $test;
i not expect. in fact, get:
43678288
where did go wrong? if try evaluate result of
$hash_multidim{key1}[0]
everything looks kosher. e.g.,
@test2 = $hash_multidim{key1}[0]; print dumper(\@test2);
produces output:
$var1 = [ [ '-3.81', '-1.91', '-1.86', '-1.70' ] ];
$hash_multidim{key1}[0]
array reference, mean
expects list. need "dereference" it. syntax little tricky, is
my $test = mean( @{$hash_multidim{key1}[0]} );
Comments
Post a Comment