sub adv_tr { my ($str, $x, $from, $to) = @_; my $pos = -1; ($pos = index($str, $from, $pos + 1)) == -1 and return $str while $x--; eval "substr(\$str, $pos) =~ tr/\Q$from\E/\Q$to\E/"; $str; }