for my $v ( values %Your_Hash_name ){ $total += $v; }
Does not sum the data as presented in OPed data structure (seems to be summing the hash reference addresses).
>perl -wMstrict -le "my %hash = ( '1' => { 'Val1' => '13.12' }, '2' => { 'Val1' => '6' }, '3' => { 'Val1' => '2' }, '4' => { 'Val1' => '15.52' }, ); ;; my $total = 0; for my $v (values %hash) { $total += $v; } print $total; ;; $total = 0; for my $v (values %hash) { $total += $v->{Val1} } print $total; " 73273728 36.64
Update: Or, per aitap's approach:
>perl -wMstrict -le "use List::Util qw(sum); ;; my %hash = ( '1' => { 'Val1' => '13.12' }, '2' => { 'Val1' => '6' }, '3' => { 'Val1' => '2' }, '4' => { 'Val1' => '15.52' }, ); ;; my $total = sum map $_->{Val1}, values %hash; print $total; " 36.64
In reply to Re^2: Hashes - perl
by AnomalousMonk
in thread Hashes - perl
by Perlseeker_1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |