[Chicago-talk] alternatives to Getopt::Long
Mike Fragassi
frag at ripco.com
Fri May 7 15:15:46 CDT 2004
On Fri, 7 May 2004, Steven Lembark wrote:
> -- Mike Fragassi <frag at ripco.com>
> > Getopt::Long doesn't seem to have the ability to take command-line
> > arguments like
> >
> > --foo a b c --bar 1 2 3
>
> There is now way for it to know that "a b c" is an argument.
But why not? You can already do
GetOptions('foo=s' => \@foo);
It should at least be feasible to go
GetOptions('foo=s+' => \@foo); # or 'foo=sl', or 'foo=S', or whatever
which could tell it to keep shifting @ARGV into @foo until you hit the
next --switch. Or a configuration parameter (like 'auto_abbrev' or
'permute') to do this for all array parameters by default. I haven't
tried hacking Getopt::Long (yet), but I was surprised this sort of thing
isn't in place.
> No reason you cannot use some extended options for processing
> the stuff (lotsawork) or just:
>
> --foo='a b c';
...which is the same as
> > --foo a,b,c --bar 1,2,3 # and split on commas later
> You could also use:
>
> --foo=a --foo=b --foo=c
...which is the same as
> > --foo a --foo b --foo c --bar 1 --bar 2 --bar 3
I know these work; I know I can hack @ARGV directly; I was wondering if
there's a module that already does what I'm asking. (This is all about
the First Virtue, guys.)
-- Mike F.
More information about the Chicago-talk
mailing list