in reply to get the average of hash values?
This may not be particularly useful (too idiomatic) and it's missing some error checking but it was fun so...
use List::Util qw( sum ); my $data = <<stuff; A,10 A,11 A,12 A,13 B,15 B,16 C,17 D,18 stuff my %stuff; for ( grep /[A-Z]/, split /\s+/, $data ) { my ( $letter, $number ) = split /,/; push @{$stuff{$letter}}, $number; } my $sum; for my $key ( keys %stuff ) { $sum += sum( @{$stuff{$key}} ) / @{$stuff{$key}}; } printf "Average of averages: %.2f\n", $sum / keys %stuff; __DATA__ Average of averages: 15.50
|
|---|