NAME

Getopt::EX::Long - Getopt::Long compatible glue module

SYNOPSIS

  use Getopt::EX::Long;
  ExConfigure(...)

  or

  require Getopt::EX::Long;
  my $parser = new Getopt::EX::Long::Parser
	config   => [ Getopt::Long option ... ],
	exconfig => [ Getopt::EX::Long option ...];

DESCRIPTION

Getopt::EX::Long is almost compatible to Getopt::Long and you can just replace module declaration and it should work just same as before.

Besides working same, user can define their own option aliases and write dynamically loaded extension module. If the command name is example,

~/.examplerc

file is loaded by default. In this rc file, user can define their own option with macro processing. This is useful when the command takes complicated arguments.

Also, special command option preceded by -M is taken and corresponding perl module is loaded. Module is assumed under the specific base class. For example,

% example -Mfoo

will load App::example::foo module, by default.

This module is normal perl module, so user can write any kind of program. If the module is specified with initial function call, it is called at the beginning of command execution. Suppose that the module foo is specified like this:

% example -Mfoo::bar(buz=100) ...

Then, after the module foo is loaded, function bar is called with the parameter baz which has value 100.

If the module includes __DATA__ section, it is interpreted just same as rc file. So you can define arbitrary option there. Combined with startup function call described above, it is possible to control module behavior by user defined option.

CONFIG OPTIONS

Config options are set by Getopt::ExConfigure or exconfig parameter for Getopt::EX::Long::Parser::new method.

AUTO_DEFAULT

Config option RCFILE and BASECLASS are automatically set based on the name of command executable. If you don't want this behavior, set AUTO_DEFAULT to 0.

Other options including RCFILE and BASECLASS are passed to Getopt::EX::Loader. Read its document for detail.

INCOMPATIBILITY

Subroutine GetOptionsFromString is not supported.

Variables $REQUIRE_ORDER, $PERMUTE, $RETURN_IN_ORDER can not be exported.

SEE ALSO

Getopt::EX