I also habitually use s/// where I could use tr///.
The main difference is with s/// you can use regular expressions, while in tr/// you cannot.
Also (from the camel book) "the translation table is built at compile
time, neither the SEARCHLIST nor the REPLACEMENTLIST are subject to double quote interpolation."
So that means:
$str =~ tr/$mylist//d; Will delete
all occurances of "$, m, y, l, i, s, t" in $str. Probably not what you want.
Also since the tr/// cannot use regex's it is usually a lot faster.
I did a benchmark to that
here.