my %hash = ( 3=>12, 1=>2, 19=>20, 38=>50, 40=>10, 60=>3, 66=>80, 700=>1 ); my %sums = dosomemagic(\%hash); print Dumper(\%sums); #$VAR1 = { # '38' => 143, # '1' => 84, # '3' => 75, # '40' => 94, # '19' => 92 # };