my %max; for my $type (keys %hash) { my $values = $hash{$type}; my $max = (sort { $values->{$b} <=> $values->{$a} } keys %$values )[0]; $max{$type} = "$max $values->{$max}"; } print Dumper \%max;