http://qs1969.pair.com?node_id=186096


in reply to passing multipule -v to a script

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

Replies are listed 'Best First'.
Passing multiple flags and incrementing
by Ferret (Scribe) on Jul 29, 2002 at 23:28 UTC

    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!