Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
App::Cmd::Setup(3)    User Contributed Perl Documentation   App::Cmd::Setup(3)

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

       version 0.334

       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'; 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 and App::Cmd::Plugin.

       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

       This module has a long-term perl	support	period.	 That means it will
       not require a version of	perl released fewer than five years ago.

       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.

       Ricardo Signes <>

       This software is	copyright (c) 2021 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.32.1			  2021-06-19		    App::Cmd::Setup(3)


Want to link to this manual page? Use this URL:

home | help