NAME

Getopt::Inherited - Handling inherited command-line options

SYNOPSIS

use base 'Getopt::Inherited';

use constant GETOPT => qw(foo=s);
my $app = __PACKAGE__->new;
$app->do_getopt;

DESCRIPTION

By subclassing this mixin class, your program gets the ability to inherit command-line option specifications. If you have several programs that share common code and common command-line options you don't want to have to write the command-line processing code again and again. Using this class you can abstract command-line options shared by your programs into a superclass from which your programs then inherit. Additionally, this class defines certain common command-line options itself.

You can also define defaults for command-line options.

METHODS

GETOPT

This accessor, which is accumulated across the class hierarchy using Data::Inherited, is used to define command-line options in the same format as Getopt::Long expects. This class, Getopt::Inherited, itself defines the following options:

use constant GETOPT =>
    (qw(help man logfile|log=s verbose|v+ version|V));
GETOPT_DEFAULTS

This accessor, which is also accumulated across the class hierarchy, can be used to define defaults for the options given in GETOPT(). For example, to define a command-line option called <foo> which takes a string and to give it a default, you would use:

use constant GETOPT => qw(foo=s);
use constant GETOPT_DEFAULTS => (foo => 'my_default');
opt

This is a hash accessor per Class::Accessor::Complex in which the option hash is stored when it has been parsed and after default values have been applied.

usage

This method is called by do_getopt() after the command-line options have been processed with Getopt::Long's GetOptions. It uses Pod::Usage to display help information if there was either an error during processing, or if the --help or --man options have been given.

do_getopt

Does the actual command-line processing. It accumulates the values of GETOPT() across the hierarchy, parses them, calls usage() if necessary, applies GETOPT_DEFAULTS(), then assigns the finished options hash to opt().

BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests through the web interface at http://rt.cpan.org.

INSTALLATION

See perlmodinstall for information and options on installing Perl modules.

AVAILABILITY

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you. Or see http://search.cpan.org/dist/Getopt-Inherited/.

The development version lives at http://github.com/hanekomu/getopt-inherited/. Instead of sending patches, please fork this project using the standard git and github infrastructure.

AUTHORS

Marcel Grünauer, <marcel@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2009 by Marcel Grünauer

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