my $min = each %h; my $max = each %h; if(defined $max) { local $_; ($min, $max) = ( $h{$_} < $h{$min} ? ($_, $max) : $h{$_} > $h{$max} ? ($min, $_) : ($min, $max) ) while defined($_ = each %h); } else { $max = $min; }