in reply to deleting characters from a string but the characters are in a variable

Well, you can simplify the translate to a single line:

use strict; use warnings; my $string = "aabbzzb"; my $oldchars = "//; print `dir *.*`; \\\$string =~ tr/"; eval "\$string =~ tr/$oldchars//d"; print $string; #will print zz

but as you may notice from the sample $oldChars string a savy user could take advantage of the string eval to do interesting stuff.

Probably you would be better to use a regex:

$string =~ s/[$oldchars]//g;

which at least is a little harder to subvert. Better still would be to sanitise $oldchars before it is used in the regex, but how you do that depends a great deal on what is appropriate in oldChars.


Perl reduces RSI - it saves typing