Here is another way to modify KEYS in-place.
This would be efficient in the case where there were a relatively small number of keys that required modification. Use the previous method (copy the hash) if the number of keys requiring modification is large.
my %o=(this=>33, 'th at'=>44, other=>55,'some thing'=>66,'or another'=
+>77,none=>88);
while (my ($k,$v)=each %o){
my $ModifiedK = $k;
next unless $ModifiedK =~s/\s/_/;
delete $o{$k}; #This is SAFE !! RTFM.
$o{$ModifiedK}=$v;
};
print qq(Mod: $_\t=>$o{$_} \n) for sort keys %o"
|