my %hash_name = (a => 1, b => 2, c => 3); my $max = (keys %hash_name)[0]; $hash_name{$_} > $hash_name{$max} and $max = $_ for keys %hash_name; print $max; #### use List::UtilsBy qw{ max_by }; my %hash_name = (a => 1, b => 2, c => 3); my $max = max_by { $hash_name{$_} } keys %hash_name; print $max;