use strict; my %hash = ( one => 'blah', two => 'echo', thr => 'aaaak', ); foreach my $key (keys %hash) { $hash{"~foo".$key} = $hash{$key}; delete $hash{$key}; } use Data::Dumper; print Dumper(\%hash);