Getopt-Auto
view release on metacpan or search on metacpan
lib/Getopt/Auto.pm view on Meta::CPAN
# Builtin help/version meets this criteria
if ( ( exists $options{$arg} )
and ( exists $options{$arg}{'registered'} ) )
{
return $arg;
}
_trace("Splitting $arg into its components");
my @args;
foreach my $char ( split m{}smx, substr $arg, 1 ) {
$char = "-$char";
push @args, $char;
$args->{$char}++;
$args->{$arg}++;
}
return @args;
}
sub _is_registered {
my $arg = shift;
lib/Getopt/Auto.pm view on Meta::CPAN
_trace("Option $argv is restricted, skipping");
_not_option($argv);
next;
}
# Check --foo=bar syntax use
my $arg_eq;
if ( $argv =~ m{=}smx ) {
# Assign-type option: --foo=bar
( $argv, $arg_eq ) = split m{=}smx, $argv;
unshift @ARGV, $arg_eq;
_trace("Option $argv has assignment");
_trace_argv();
}
# Process $argv as directed by %options, or push it back onto @ARGV
if ( _is_registered($argv) ) {
# Registered option, the simple case
lib/Getopt/Auto.pm view on Meta::CPAN
if ( not defined $shorthelp ) {
Getopt::Auto::_trace('No shorthelp, not an option');
return;
}
Getopt::Auto::_trace("Shorthelp is: $shorthelp");
# This suports options of the form "-f, --foo"
my $sub;
my @nosub;
my @opts = split m{,\s*}smx, $text;
foreach my $name (@opts) {
$name =~ s{\A(\w<)?([\w_-]+)>?}{$2}smx;
if ( $name =~ m{\s}smx ) {
Getopt::Auto::_trace("$name dropped, has spaces");
next;
}
Getopt::Auto::_trace("Option is $name");
$self->{'funcs'}{$name} = { 'shorthelp' => $shorthelp, };
$self->{'copying'} = 1;
( run in 0.866 second using v1.01-cache-2.11-cpan-71847e10f99 )