in reply to Simplify parsing a file

On a side note, $! is only meaningful after doing something with the operating system, such as opening files. In code like this:
if($#ARGV < 0){ die "You did not specify any files to process! : $!\n"; }
there won't be any useful information in $!.

Replies are listed 'Best First'.
Re^2: Simplify parsing a file
by myrrdyn (Novice) on Apr 02, 2007 at 18:44 UTC
    oh, i thought that would give me info about what caused it to die. Now that I looked it up again, do you think $@ is really what I should use?

      No. Why would it be? There's no system error. There's merely a usage error.

      You didn't make a system call that failed ($!) and there's no caught exception ($@). Your program didn't get called with any arguments, which your code detects itself, and there's no more information to provide about the source of the error--you know exactly what the source of the error is!

      Now I prefer to write that code as:

      die "No files to process\n" unless @ARGV;

      ... mostly because I prefer the boolean check of the number of elements in @ARGV to checking the number of the last array index.