in reply to hashes with multiple values per key

You could sum as you go, or you could sum afterwards:

use strict; use warnings; use List::Util; my %yahoo = (); while (<DATA>) { my ($value,$key) = split; push @{$yahoo{$key}}, $value; } foreach my $key (sort keys %yahoo) { my $sum = List::Util::sum (@{$yahoo{$key}}); print "$key: $sum\n"; } __DATA__ 12 AAAA 12 AAAA 15 BBBB 1222 CCCC 1 BBBB

Prints:

AAAA: 24 BBBB: 16 CCCC: 1222

DWIM is Perl's answer to Gödel