Argv
view release on metacpan or search on metacpan
$r_argv = $cfg->{ARGV};
$prefix = $cfg->{PREFIX};
}
require Getopt::Long;
local $Getopt::Long::passthrough = 1;
local $Getopt::Long::genprefix = "($prefix)";
my @flags = map {"$_=i"} ((map lc, keys %Argv::Argv), @_);
my %opt;
if (ref $self) {
if ($r_argv) {
local @ARGV = @$r_argv;
GetOptions(\%opt, @flags);
@$r_argv = @ARGV;
} else {
local @ARGV = $self->args;
if (@ARGV) {
GetOptions(\%opt, @flags);
$self->args(@ARGV);
}
}
} elsif ($r_argv) {
local @ARGV = @$r_argv;
GetOptions(\%opt, @flags);
@$r_argv = @ARGV;
} elsif (@ARGV) {
GetOptions(\%opt, @flags);
}
for my $method (keys %opt) {
$self->$method($opt{$method});
}
return $self;
}
# is an option set name followed by bunch of array-refs: a pointer
# to a list of Getopt::Long-style option descs, a ref to be filled
# in with a list of found options, another containing the input
# args and to be filled in with the leftovers, and an optional
# one containing Getopt::Long-style config options.
sub factor {
my $self = shift;
my($pset, $r_desc, $r_opts, $r_args, $r_cfg) = @_;
my @vgra;
{
local @ARGV = @$r_args;
if ($r_desc && @$r_desc) {
require Getopt::Long;
# Need this version so Configure() returns prev state.
Getopt::Long->VERSION(2.23);
if ($r_cfg && @$r_cfg) {
my $prev = Getopt::Long::Configure(@$r_cfg);
GetOptions($self->{AV_LKG}{$pset}, @$r_desc);
Getopt::Long::Configure($prev);
} else {
local $Getopt::Long::passthrough = 1;
( run in 0.527 second using v1.01-cache-2.11-cpan-49f99fa48dc )