$ cat cryppled.pl #!/usr/bin/perl use strict; use warnings; my %map = ( a=>'b', b=>'d', c=>'g', d=>'c', e=>'f', f=>'a' ); my $orig = 'abcdefgh'; print "orig: '$orig'\n"; my $new1 = $orig; for my $k (keys %map) { $new1 =~ s/$map{$k}/$k/g; } print "new1: '$new1'\n"; my $new2 = $orig; for my $k (reverse keys %map) { $new2 =~ s/$map{$k}/$k/g; } print "new2: '$new2'\n"; my $new3 = $orig; $new3 =~ tr/abcdef/bdgcfa/; print "new3: '$new3'\n"; $ perl crypplyd.pl orig: 'abcdefgh' new1: 'ffdbeedh' new2: 'eaaaeech' new3: 'bdgcfagh'