Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^3: GetOpt Organization (error check)

by karlgoethebier (Abbot)
on Mar 10, 2015 at 10:29 UTC ( [id://1119462]=note: print w/replies, xml ) Need Help??


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

...You want your program running with invalid option passed?

No, perish the thought.

When i run the snippet i posted with an invalid option i get:

monks>options.pl --goo Unknown option: goo

Best regards, Karl

«The Crux of the Biscuit is the Apostrophe»

Replies are listed 'Best First'.
Re^4: GetOpt Organization (error check)
by Discipulus (Canon) on Mar 10, 2015 at 11:10 UTC
    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.

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1119462]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-04-19 12:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found