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