in reply to Re^3: GetOpt Organization (error check)
in thread GetOpt Organization

Well, i have to dissent my friend, try to add print "Here i'm still alive!\n";
at the bottom of your snippet: i get
Unknown option: goo Here i'm still alive!


L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^5: GetOpt Organization (error check)
by karlgoethebier (Abbot) on Mar 10, 2015 at 11:20 UTC

    Mmh, so did i. I still get Unknown option: goo but no survivor.

    «The Crux of the Biscuit is the Apostrophe»

      Thanks for point it out Karl, never noticed the difference: reading docs:
      GetOptions() will return a true value if the command line could be processed successfully. Otherwise, it will write error messages using die() and warn(), and return a false result.
      
      ...
      
      Configuration errors and errors in the option definitions are signalled using die() and will terminate the calling program unless the call to Getopt::Long::GetOptions() was embedded in eval { ... } , or die() was trapped using $SIG{__DIE__} .
      GetOptions returns true to indicate success. It returns false when the function detected one or more errors during option parsing. These errors are signalled using warn() and can be trapped with $SIG{__WARN__} .
      
      seems to means that die only if you specify something in the wrong way in the program (as in GetOptions(\%options,"foo=x"); will results in die with message: Error in option spec: "foo=x").
      By other hand if you specify in the program GetOptions(\%options,"foo=i"); and you pass not an integer like --foo a you'll get a warning.. and you'll still alive!

      L*
      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.