my %hash = ( red => 2, pink => 1, orange => 4, black => 3, blue => 4 ); my ($max, @maxKeys); for (keys %hash) { $max = $hash{$_} unless $max; if ($hash{$_} > $max) { @maxKeys = ($_); $max = $hash{$_}; } elsif ($hash{$_} == $max) { push @maxKeys, $_; } } print "$_: $hash{$_}\n" for @maxKeys;