Provided by: libapp-cmd-perl_0.336-1_all bug

NAME

       App::Cmd::Setup - helper for setting up App::Cmd classes

VERSION

       version 0.336

OVERVIEW

       App::Cmd::Setup is a helper library, used to set up base classes that will be used as part of an App::Cmd
       program.  For the most part you should refer to the tutorial for how you should use this library.

       This class is useful in three scenarios:

       when writing your App::Cmd subclass
           Instead of writing:

             package MyApp;
             use parent 'App::Cmd';

           ...you can write:

             package MyApp;
             use App::Cmd::Setup -app;

           The  benefits  of  doing  this  are  mostly  minor,  and  relate  to sanity-checking your class.  The
           significant benefit is that this form allows you to specify plugins, as in:

             package MyApp;
             use App::Cmd::Setup -app => { plugins => [ 'Prompt' ] };

           Plugins are described in App::Cmd::Tutorial.

           Doing this also allows you to override the default configuration passed to Getopt::Long. By  default,
           this  configuration  includes  "pass_through", which allows subdispatch to work correctly. If you are
           not using subdispatch, and want your command to exit on unknown options, you can say:

             package MyApp;
             use App::Cmd::Setup -app => { getopt_conf => [] };

       when writing abstract base classes for commands
           That is: when you write a subclass of App::Cmd::Command that is intended for other commands to use as
           their base class, you should use App::Cmd::Setup.  For example, if you want all the commands in MyApp
           to inherit from MyApp::Command, you may want to write that package like this:

             package MyApp::Command;
             use App::Cmd::Setup -command;

           Do not confuse this with the way you will write specific commands:

             package MyApp::Command::mycmd;
             use MyApp -command;

           Again, this form mostly performs some validation and setup behind the scenes for you.   You  can  use
           "base" if you prefer.

       when writing App::Cmd plugins
           App::Cmd::Plugin  is  a  mechanism  that allows an App::Cmd class to inject code into all its command
           classes, providing them with utility routines.

           To write a plugin, you must use App::Cmd::Setup.  As seen above, you must also use App::Cmd::Setup to
           set up your App::Cmd subclass if you wish to consume plugins.

           For more information on writing plugins, see App::Cmd::Manual and App::Cmd::Plugin.

PERL VERSION

       This library should run on perls released even a long time ago.  It should work on any  version  of  perl
       released in the last five years.

       Although  it  may  work on older versions of perl, no guarantee is made that the minimum required version
       will not be increased.  The version may be increased for any reason, and there is no promise that patches
       will be accepted to lower the minimum required perl.

AUTHOR

       Ricardo Signes <cpan@semiotic.systems>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2023 by Ricardo Signes.

       This is free software; you can redistribute it and/or modify it under  the  same  terms  as  the  Perl  5
       programming language system itself.

perl v5.36.0                                       2023-09-24                               App::Cmd::Setup(3pm)