If you are on a UNIX system, there is a full non-perl solution (untested!); this should work on a bourne-like shell:
for FILE in `find /dir -type f -name \*.pl -print` ; do sed -e 's/and/&&/g' $FILE > $FILE.new ; doneAfter that you should go through all .new files and see if you actually needed the change. I am not sure that you really want to change every and in &&
If you are sure you don't need to double-check the changed files, you could then substitute that sed with an analogous one-liner using perl -pi.bak 's/and/&&/g' (untested again) and keep the .bak files in a safe place if, one day, you'll find a wrong change.
Update: Oooooopssss! hardburn is right!!! You need to do the changes iteratively or write something to reparse your code... sorry, I am an idiot, too!
Ciao!
--bronto
The very nature of Perl to be like natural language--inconsistant and full of dwim and special cases--makes it impossible to know it all without simply memorizing the documentation (which is not complete or totally correct anyway).
--John M. Dlugosz
In reply to Re: Operator precedence (or, I'm an idiot)
by bronto
in thread Operator precedence (or, I'm an idiot)
by Mur
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |