- or download this
use Algorithm::Loops 'MapCarMin';
%hash = MapCarMin {@_} [ 0 .. keys %hash ],
[ @hash{ sort {$a<=>$b} keys %hash } ];
- or download this
%hash = map {
ref($_) && $_ == \$hash{''}
? ( delete $hash{''} )[1..0]
: ( ++$hash{''}, $_ )
} @hash{ sort {$a<=>$b} keys %hash }, \$hash{''};
- or download this
@hash{ 1..keys %hash } = delete @hash{
sort {$a<=>$b} keys %hash };