Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

What would be the most efficient way to replace the 0-9a-Z characters in a string with a map. I know I am not using the right terminology, but I want to make a key of A|o B|w 2|q c|2 .......

so if the input string is AB2c then the output would be owq2.
I just need to make a text scramble that I can then unscramble.
there must be and easier way then doing 26+26+10 of these
$str = ~s/A/o/;

Plus I would probably be replacing characters I already replaced, I think.
If I were using sed I'd echo $input | sed -e 's/A/o/g' -e 's/B/w/g'..........
Thanks
I'd try Blowfish-Crypt, but I can't add PMs to this production machine. I just need a jumble/unjumble that doesn't require PMs.

Replies are listed 'Best First'.
Re: Text String Jumble
by hipowls (Curate) on Feb 18, 2008 at 06:11 UTC

    tr/// is the most efficient for a simple mapping, for example rot-13 is

    perl -pe'tr/a-zA-Z/n-za-mN-ZA-M/' file
    or in a script
    $line =~ tr/a-zA-Z/n-za-mN-ZA-M/;

    Update: fixed typo, changed A-m to A-M