in reply to Re: Re: Interchanging hash values
in thread Interchanging hash values
You could even go all out on each to remove the last bit of redundant work, and to reduce memory footprint.my ($min, $max) = (scalar each %h) x 2; ($min, $max) = ( $h{$_} < $h{$min} ? ($_, $max) : $h{$_} > $h{$max} ? ($min, $_) : ($min, $max) ) for keys %h;
That's all cool if your hash is really huge. If it's just a couple pairs, I'll prefer the lazy route any day.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; }
Makeshifts last the longest.
|
|---|