NAME

Getopt::Usaginator - Conjure up a usage function for your applications

VERSION

version 0.0012

SYNOPSIS

use Getopt::Usaginator <<_END_;

    Usage: xyzzy <options>

    --derp          Derp derp derp         
    --durp          Durp durp durp
    -h, --help      This usage
    
_END_

# The 'usage' subroutine is now installed

...

$options = parse_options( @ARGV ); # Not supplied by Usaginator

usage if $options{help}; # Print usage and exit with status 0

if ( ! $options{derp} ) {
    # Print warning and usage and exit with status -1
    usage "You should really derp";
}

if ( $options{durp} ) {
    # Print warning and usage and exit with status 2
    usage 2 => "--durp is not ready yet";
}

...

usage 3 # Print usage and exit with status 3

DESCRIPTION

Getopt::Usaginator is a tool for creating a handy usage subroutine for commandline applications

It does not do any option parsing, but is best paired with Getopt::Long or any of the other myriad of option parsers

USAGE

use Getopt::Usaginator <usage>

Install a usage subroutine configured with the <usage> text

$code = Getopt::Usaginator->usaginator( <usage> )

Return a subroutine configured with the <usage> text

...

More advanced usage is possible, peek under the hood for more information

perldoc -m Getopt::Usaginator

An example:

use Getopt::Usaginator
    # Called with the error
    error => sub { ... },
    # Called when usage printing is needed
    usage => sub { ... },
    ...
;

An example with Getopt::Long parsing

use Getopt::Usaginator ...

sub run {
    my $self = shift;
    my @arguments = @_;

    usage 0 unless @arguments;

    my ( $help );
    {     
        local @ARGV = @arguments;                                  
        GetOptions(
            'help|h|?' => \$help,
        );
    }

    usage 0 if $help;

    ...
}

AUTHOR

Robert Krimen <robertkrimen@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Robert Krimen.

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