Note that because the transliteration table is built at
compile time, neither the SEARCHLIST nor the REPLACEMENTLIST
are subjected to double quote interpolation. That means that
if you want to use variables, you must use an eval():
die $@ if $@;
eval "tr/$oldlist/$newlist/, 1" or die $@;
It does sound as if s/// might end up being as efficient (perhaps unless the string is quite long...subject for further tests). Now I see that the question stems in part from an RTFM problem, shame on me. Perhaps I will vote against my own message. Thanks, plaid and btrott.