@hash{ keys(%hash), 0..keys(%hash)-1 } = ((undef) x keys(%hash), @hash{ sort { $a <=> $b } keys %hash }); delete @hash{ grep !defined $hash{$_}, keys %hash };