The double \\ is always OK (although in single quotes it is often redundant). That is not your problem now, and maybe never was. If you are passing a file name on the command line then the default file name is irrelevant. As a sanity check you should:
die "Can't find $filename\n" if ! -f $filename;
before the parse line. Note that -f tests for the existence of a file so the die will happen if the file is missing, even if there is a directory of that name.
Most likely you are passing a file name for a file that exists in a different directory than is the current directory when you run the script. The die line will detect and report that.
Note that strictures (use strict; use warnings;) pick up bad escape sequences and would often catch your initial error (although not \E). You should always use strictures.
True laziness is hard work
|