use List::UtilsBy qw{ minmax_by }; for my $name ( keys %counts ) { my $subhash = $counts{$name}; my ($minimal, $maximal) = minmax_by { $_ } keys %$subhash; print "$name, $minimal - $maximal\n"; }