##
%hash = map {
ref($_) && $_ == \$hash{''}
? ( delete $hash{''} )[1..0]
: ( ++$hash{''}, $_ )
} @hash{ sort {$a<=>$b} keys %hash }, \$hash{''};
####
@hash{ 1..keys %hash } = delete @hash{
sort {$a<=>$b} keys %hash };