NAME
    "Getopt::Simple" - Provide a simple wrapper around Getopt::Long.

SYNOPSIS
            use Getopt::Simple;

            # Or ...
            # use Getopt::Simple qw($switch);

            my($options) =
            {
            'help' =>
                    {
                    'type'          => '',
                    'env'           => '-',
                    'default'       => '',
    #               'verbose'       => '',  # Not needed on every key.
                    'order'         => 1,
                    },
            'username' =>
                    {
                    'type'          => '=s',                        # As per Getopt::Long.
                    'env'           => '$USER',                     # Help text.
                    'default'       => $ENV{'USER'} || 'RonSavage', # In case $USER is undef.
                    'verbose'       => 'Specify the username on the remote machine',
                    'order'         => 3,                           # Help text sort order.
                    },
            'password' =>
                    {
                    'type'          => '=s',
                    'env'           => '-',
                    'default'       => 'password',
                    'verbose'       => 'Specify the password on the remote machine',
                    'order'         => 4,
                    },
            };

            my($option) = new Getopt::Simple;

            if (! $option -> getOptions($options, "Usage: testSimple.pl [options]") )
            {
                    exit(-1);       # Failure.
            }

            print "username: $option->{'switch'}{'username'}. \n";
            print "password: $option->{'switch'}{'password'}. \n";

            # Or, after 'use Getopt::Simple qw($switch);' ...
            # print "username: $switch->{'username'}. \n";
            # print "password: $switch->{'password'}. \n";

DESCRIPTION
    The "Getopt::Simple" module provides a simple way of specifying:

    *   Command line switches

    *   Type information for switch values

    *   Default values for the switches

    *   Help text per switch

The "getOptions()" function
    The "getOptions()" function takes 4 parameters:

    *   A hash defining the command line switches

    *   A string to display as a help text heading

    *   A Boolean. 0 = (Default) Use case-sensitive switch names. 1 = Ignore
        case

    *   A Boolean. 0 = Return after displaying help. 1 = (Default) Terminate
        with exit(0) after displaying help

The $classRef -> {'switch'} hash reference
    Command line option values are accessed in your code by dereferencing
    the hash reference $classRef -> {'switch'}. Two examples are given
    above, under synopsis.

    Alternately, you can use the hash reference $switch. See below.

The $switch hash reference
    Command line option values are accessed in your code by dereferencing
    the hash reference $switch. Two examples are given above, under
    synopsis.

    Alternately, you can use the hash reference $classRef -> {'switch'}. See
    above.

The "dumpOptions()" function
    "dumpOptions()" prints all your option's keys and their current values.

The "helpOptions()" function
    "helpOptions()" prints nicely formatted help text.

INSTALLATION
    You install "Getopt::Simple", as you would install any perl module
    library, by running these commands:

            perl Makefile.PL
            make
            make test
            make install

    If you want to install a private copy of "Getopt::Simple" in your home
    directory, then you should try to produce the initial Makefile with
    something like this command:

            perl Makefile.PL LIB=~/perl
                    or
            perl Makefile.PL LIB=C:/Perl/Site/Lib

    If, like me, you don't have permission to write man pages into unix
    system directories, use:

            make pure_install

    instead of make install. This option is secreted in the middle of p 414
    of the second edition of the dromedary book.

WARNING re Perl bug
    As always, be aware that these 2 lines mean the same thing, sometimes:

    *   $self -> {'thing'}

    *   $self->{'thing'}

    The problem is the spaces around the ->. Inside double quotes, "...",
    the first space stops the dereference taking place. Outside double
    quotes the scanner correctly associates the $self token with the
    {'thing'} token.

    I regard this as a bug.

REQUIRED MODULES
    *   Exporter

    *   Getopt::Long

RETURN VALUES
    *   "dumpOptions()" returns nothing

    *   "helpOptions()" returns nothing

    *   "getOptions()" returns 0 for failure and 1 for success

AUTHOR
    "Getopt::Simple" was written by Ron Savage *<ron@savage.net.au>* in
    1997.

LICENCE
    Australian copyright (c) 1997-2002 Ron Savage.

            All Programs of mine are 'OSI Certified Open Source Software';
            you can redistribute them and/or modify them under the terms of
            The Artistic License, a copy of which is available at:
            http://www.opensource.org/licenses/index.html
