Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Showing global options while using App::Cmd

by McA (Curate)
on Sep 25, 2012 at 08:19 UTC ( #995508=perlquestion: print w/ replies, xml ) Need Help??
McA has asked for the wisdom of the Perl Monks concerning the following question:

Hi all,

just started to dig into App::Cmd and can't find the answer to the follworing question:

When I have defined global options with global_opt_spec how can I achieve that the usage of these options is printed when I call script help or script alone.

The command specific options are printed when you call script help command.

At the moment it seems to me that the only way is to call script --rubbish while --rubbish is an unknown option.

Hints appreciated.

Best regards
McA

Comment on Showing global options while using App::Cmd
Select or Download Code
Re: Showing global options while using App::Cmd
by tobyink (Abbot) on Sep 25, 2012 at 08:29 UTC

    Personally I avoid global_opt_spec and instead use a base class for all commands. Let's say my app is called MyApp, then I'll do it like this:

    { package MyApp::Command; # abstract use strict; use App::Cmd::Setup-command; sub opt_spec { return ( [ 'someopt' => 'This is a global option' ], ); } # you can also define any helper methods you like here # and all your commands will have easy access to them. } { package MyApp::Command::foo; use strict; use MyApp-command; sub opt_spec { my $self = shift; return ( $self->SUPER::opt_spec(@_), [ 'otheropt' => 'This is another option' ], ); } }
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

      Hi tobyink,

      thank you for the fast reply.

      Am I right, that all these "base" options would show up as command options?

      Do you know a way to solve my initial problem if I really want the distinction between global and command specific options?

      Best regards
      McA

Re: Showing global options while using App::Cmd
by McA (Curate) on Sep 25, 2012 at 09:16 UTC

    Hi all,

    I just found out, that calling script commands shows the global options. Only script help doesn't show them.

    So, my initial question is answered by myself. Does this raise my reputation? ;-)

    Best regards
    McA

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://995508]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (9)
As of 2014-10-23 02:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (123 votes), past polls