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

Reply via email to