Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re^2: Range in Getopt

by roho (Canon)
on Oct 03, 2012 at 13:26 UTC ( #997054=note: print w/replies, xml ) Need Help??

in reply to Re: Range in Getopt
in thread Range in Getopt

I like your solution, but when no -d parameter is present, the following warning is displayed:

Warning: something's wrong at C:\tmp\ line 15.

This appears to be a warning from Getopt::Long. I tried adding return 1 if !defined @_; at the top of the sub but the warning persists.

"Its not how hard you work, its how much you get done."

Replies are listed 'Best First'.
Re^3: Range in Getopt
by james2vegas (Chaplain) on Oct 03, 2012 at 18:34 UTC
    That is because while the d option's value is required, the d option itself is not, check the definedness of $_debug afterwards:

    use Getopt::Long; my $_debug; GetOptions('d=i' => sub { $_debug = $_[1]; ($_debug > 0 && $_debug <= 4) or die "Invalid Debug Level ($_d +ebug)" } ) or exit 1; die "Debug Level is required" unless defined $_debug; warn "Debug Level is $_debug\n";

    or set a default value before GetOptions:

    use Getopt::Long; my $_debug = 0; GetOptions('d=i' => sub { $_debug = $_[1]; ($_debug > 0 && $_debug <= 4) or die "Invalid Debug Level ($_d +ebug)" } ) or exit 1; warn "Debug Level is $_debug\n";

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2019-12-11 14:28 GMT
Find Nodes?
    Voting Booth?

    No recent polls found