This probably goes against everything a shell based platform wants, but
would it be possible to give the program a sub-like signature?
I ask this after another painful session of forgetting how things
work, reading Getopt::Long's documentation.
signature (
Rule $pattern,
bool +$help :short('h'),
Int +$verbose :short('v'),
Str [EMAIL PROTECTED] = <->
);
With GNU-like parsing, this'd make
@*ARGS = < foo|bar --verbose 2 first second third >;
@*ARGS = < foo|bar -vv first second third >;
result in the lexical variables
$pattern = rx/foo|bar/;
$help = false;
$verbose = 2;
@files = < first second third >;
and
@*ARGS = < foo -- -v --verbose --help forth fifth sixth >;
in
$pattern = rx/foo/;
$help = false;
$verbose = undef;
@files = < -v --verbose --help forth fifth sixth >;
and
@*ARGS = < pattern >
in
$pattern = rx/pattern/;
$help = false;
$verbose = undef;
@files = ('-');
Probably a macro can handle this, but does (will) Perl parse a
signature-like argument list and hand the macro something it can use, or
would this require source-filter like trickery?
Juerd
--
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html
http://convolution.nl/gajigu_juerd_n.html