my %money_spent = (); foreach my $customer (keys %myHash) { $money_spent{$customer} = $myHash{$customer}->{"money"}; } #### my $money_spent = 0; foreach my $customer (keys %myHash) { $money_spent += $myHash{$customer}->{"money"}; } #### my %money_spent = map { $_ => $myHash{$_}->{"money"} } keys %myHash; #### use List::Util qw/sum/; # ... my $money_spent = sum map { $myHash{$_}->{"money"} } keys %myHash; #### my %myHash = ( "Fred Flintstone" => { "money" => 1000, "wife" => "Wilma", }, "Barney Rubble" => { "money" => 2000, "wife" => "Betty", }, );