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.
In reply to Re^3: Doubt regarding parsing
by GrandFather
in thread Doubt regarding parsing
by pavanpvss
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |