Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

passing multipule -v to a script

by gkramm (Initiate)
on Jul 29, 2002 at 22:24 UTC ( [id://186093]=perlquestion: print w/replies, xml ) Need Help??

gkramm has asked for the wisdom of the Perl Monks concerning the following question:

I would like to be able to pass multipule -v as input to a script using getopts. Such that ./script.pl -v gives $opt_v a value of 1 and ./script.pl -v -v gives $opt_v a value of 2, and so on. Is this possible? Should I even be using getops?

Replies are listed 'Best First'.
Re: passing multipule -v to a script
by mkmcconn (Chaplain) on Jul 29, 2002 at 22:36 UTC

    from perldoc Getopt::Long

          An incremental option is specified with a plus "+" after
           the option name:
    
               my $verbose = '';   # option variable with default value (false)
               GetOptions ('verbose+' => \$verbose);
    
           Using "--verbose" on the command line will increment the
           value of "$verbose". This way the program can keep track
           of how many times the option occurred on the command line.
           For example, each occurrence of "--verbose" could increase
           the verbosity level of the program.
    

    mkmcconn

      To amplify mkmcconn's neat RTM answer, Getopt::Long does do exactly what you need.

      I'm used to the very C-ish Getopt::Std, which is pretty much a reimplementation of the C function, so expected the same out of Getopt::Long, only word-oriented and using the BSDish -- flag indicator. Wrongo.

      Getopt::Long has all sorts of DWIMmery to accept flags with one or two dashes, increment, and anything else. So, you can just use:

      GetOptions('v+', \$verbose);

      and you will get the behavior you desire from

      scriptname -v -v -v

      Thanks, mkmcconn!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2024-04-23 11:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found