From 4999ab8697aed65ca52a4aaf2d655439a90ae5ec Mon Sep 17 00:00:00 2001 From: espie Date: Sun, 21 May 2023 13:44:56 +0000 Subject: [PATCH] document how this is used... There's nothing that actually uses the export part, and be explicit about how we call code refs. --- usr.sbin/pkg_add/OpenBSD/Getopt.pod | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/usr.sbin/pkg_add/OpenBSD/Getopt.pod b/usr.sbin/pkg_add/OpenBSD/Getopt.pod index 182bec99e23..a4f17fbbce7 100644 --- a/usr.sbin/pkg_add/OpenBSD/Getopt.pod +++ b/usr.sbin/pkg_add/OpenBSD/Getopt.pod @@ -1,4 +1,4 @@ -$OpenBSD: Getopt.pod,v 1.1 2020/12/20 15:30:58 daniel Exp $ +$OpenBSD: Getopt.pod,v 1.2 2023/05/21 13:44:56 espie Exp $ =head1 NAME @@ -8,25 +8,24 @@ OpenBSD::Getopt - Process single-characters switches use OpenBSD::Getopt; - our($opt_o, $opt_i, $opt_f, $opt_v); - getopts('oifv:', - { 'v' => sub { - ++$opt_v;} - } + my $h = { 'v' => + sub() { + ++$opt_v; + }; + }; + getopts('oifv:', $h); =head1 DESCRIPTION -This is similar to L. One call to C parses +This is similar to L. One call to C parses all the options using the C<$optstring> as a list of simple switches (letter) and switches with arguments (letter followed by C<:>). -Option values are directly written into local variables of the form -C<$opt_S>, where C is the switch name. - -Contrary to L, C<$opt_S> is incremented each time the switch is +Option values are written into the hash C<$h>. +Contrary to L, C<$h-E{v}> is incremented each time the switch is seen, to allow for stuff like C<-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 C<$foo> is called as -C<$foo> for a simple switch and as C<$foo(option_value)> for a switch +Alternately, a code ref can be put into the hash for a given switch. +When a switch is seen, the sub C<$foo> is called as +C<&$foo()> for a simple switch and as C<&$foo(option_value)> for a switch with argument. -- 2.20.1