use Data::Dump qw(dump); my %hash = ( key1 => 'Value1', key2 => 'Value2', key3 => 'Value3', ); print "old hash is " . dump(\%hash) ."\n"; map { s/2/_two/; } %hash; print "new hash is " . dump(\%hash) ."\n"; # output is: # old hash is { key1 => "Value1", key2 => "Value2", key3 => "Value3" } # new hash is { key1 => "Value1", key2 => "Value_two", key3 => "Value3" }