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

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!

There are no rules, there are no thumbs..