OpenBSD::Getopt(3p)

NAME
OpenBSD::Getopt - Process single-characters switches

SYNOPSIS
   use OpenBSD::Getopt;

   our($opt_o, $opt_i, $opt_f, $opt_v);
   getopts('oifv:',
        { 'v' => sub {
                ++$opt_v;}
        }

DESCRIPTION
This is similar to getopt(3). One call to "getopts($optstring)" parses all the options using the $optstring as a list of simple switches (letter) and switches with arguments (letter followed by ":").

Option values are directly written into local variables of the form $opt_S, where "S" is the switch name.

Contrary to getopt(3), $opt_S is incremented each time the switch is seen, to allow for stuff like "-vv".

An optional hash can be used as a second argument, with switches as keys and subs as values. When a switch is met, the sub $foo is called as $foo for a simple switch and as "$foo(option_value)" for a switch with argument.