Ok, I have this shell script that pipes some stuff to xargs. Some of the stuff has lone single quotes in it and breaks the pipe to xargs because of an unmatched quote error. So to fix this, I do something like: cat filname.txt | perl -pi -e "s/\'/\\\'/g" | xargs .... How can I modify that perl statement so it will take single quotes, double quotes, greater/less than signs, question marks, and asterisks, and replace them with a backslash and then themselves? * would be \* ? would be \? " would be \" and so on. I don't want to have a bunch of -e statements in my little perl command. Jay