http://www.perlmonks.org?node_id=653852


in reply to Parsing a log file

This is not the answer or help in the problem but hint how to make things other way.

You could consider using -n or -p switch to ease your script. I use it all the time and it really saves me much thinking about file names and handles and other stuff like error handling.

1. Reading. Instead of

#!perl use strict; open INPUT,... while(<INPUT>) { ...code inside loop... }
and running like this:
C:\>myscript.pl
use this
#!perl -n use strict; ...code inside loop...
and run like this
C:\>myscript.pl input_file.txt

2. Writing. Instead of opening CSV file and printing to it, print to STDOUT. And redirect to file like this:
C:\>myscript.pl > OUTPUT.csv
Combine those two together(-p switch will print $_ for you):

#!perl -n use strict; ...code to do with every line of input stored in $_... print $_; # or just print
or
#!perl -p use strict; ...code to do with every line of input stored in $_...
Regardless which switch you choose, use the script like this:
C:\>myscript.pl input_file.txt > OUTPUT.csv