Base object for Commands. May be used directly in a command collection or may be extended for special functionality. Note that the Control and other components will not recognize any class extension without also being modified.

Commands are usually loaded into Packages to provide their functionality. One Package may have many commands and parameters. Rather than writing these as separate object new statements, one can use YAML to load in batches of Parameters and Commands into the Package. Order is important, be sure to load or define Parameters before Commands that use them.

This is a holdover to facilitate migration from the older style method of calling commands with an oob, to the new POE parameter use. The value 'poe' means the command is called directly with the normal POE KERNEL HEAP and ARGs. 'session' means that a POE event handler is called. call_style will only accept SCALAR type values.

These are command line options that will be issued every time the command is called. They will begin the value returned by BuildCommandLine. Make sure that they are not available as parameters for this command. There is no checking for duplicates and that will likely cause errors. cl_options should only contain scalar values.

A command may be aliased to several different terms in a given context or it may be aliased to different terms in different contexts. This method takes a context and returns the list of aliases for the command. It is used internally to support help.

An internal method that takes a context hash key and returns all the aliases for that specific key. The aliases could be an array, hash or scalar and this function simplifies that logic. It returns a hash keyed on aliases of the command object.

If one has only a context, then use Usages which will call Aliases correctly.

Returns a hash keyed on parameter after the arguments have been parsed by Getopt::Lucid and validated by FormValidator::Simple as per the constraints specified in the Parameter or Command definitions. Will respond itself if there is an error and return nothing.

Returns a hash keyed on parameter after the arguments have been parsed by Getopt::Lucid and validated by FormValidator::Simple as per the constraints specified in the Parameter or Command definitions. Will respond itself if there is an error and return nothing.

When naming commands in the preinit commands hash or loading from loadyaml() it is easy to accidentally duplicate names and cause commands not to load. The author expects that when he makes this a habit, he'll try to fix it by doing something better than a loading a hash with no validation.

Most command packages process args in an eval statement which will sometimes return rather gnarly detailed traces back to the user. This is not a security issue because open source software is not a black box where such obscurity might be relied upon (albeit ineffectively), but it is a bug.