in reply to about separator

What you want to do is called inplace editing. Here is an example:

#!/usr/bin/perl -i.bak { local $/ = "//\n"; while (<>) { # grab a line into $_ s/this/that/; # munge away print; # output the munged line to file } } continue { print STDOUT ++$counter, "\n"; }

The -i.bak tells perl to do an inplace edit on the argument files and write a backup called <file>.bak where <file> is the argument file

You set the input separator as shown - it is localised to the block. The while than loops though each "line" assigning it to $_. We can make mods to $_ and then the print prints it back to the original file overwriting the original line. The contents of the original file (unmodified) are written to <file>.bak. We can print to STDOUT by specifying it and use a continue block to do something (like print the counter) with each line.

Just call the script like this: perl munge.pl <file1> <file2>

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print