| Getopt::Simple(3pm) | User Contributed Perl Documentation | Getopt::Simple(3pm) | 
"Getopt::Simple" - Provide a simple wrapper around Getopt::Long.
        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) = Getopt::Simple -> new();
        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";
"Getopt::Simple" is a pure Perl module.
The "Getopt::Simple" module provides a simple way of specifying:
This module is available both as a Unix-style distro (*.tgz) and an ActiveState-style distro (*.ppd). The latter is shipped in a *.zip file.
See http://savage.net.au/Perl-modules.html for details.
See http://savage.net.au/Perl-modules/html/installing-a-module.html for help on unpacking and installing each type of distro.
new(...) returns a "Getopt::Simple" object.
This is the class's contructor.
Usage: Getopt::Simple -> new().
This method does not take any parameters.
"dumpOptions()" prints all your option's keys and their current values.
"dumpOptions()" does not return anything.
The "getOptions()" function takes 4 parameters:
The structure of this hash ref is defined in the next section.
This parameter is mandatory.
This parameter is mandatory.
This parameter is optional.
This parameter is optional.
"getOptions()" returns 0 for failure and 1 for success.
The keys and values of this nested hash ref are as follows.
This key, value pair is mandatory.
This is the default value for this switch.
Examples:
        default => '/users/home/dir'
        default => $ENV{'REMOTEHOST'} || '127.0.0.1'
    
  This key, value pair is mandatory.
This is help test, to indicate that the calling program can use an environment variable to set the default value of this switch.
Use '-' to indicate that no environment variable is used.
Examples:
        env => '-'
        env => '$REMOTEHOST'
    
    Note the use of ' to indicate we want the $ to appear in the output.
This key, value pair is mandatory.
This is the type of the command line switch, as defined by Getopt::Long.
Examples:
        type => '=s'
        type => '=s@',
    
  This key, value pair is optional.
This is long, explanatory help text which is displayed below the help containing the three columns of text: switch name, env value, default value.
Examples:
        verbose => 'Specify the username on the remote machine',
        verbose => 'Specify the home directory on the remote machine'
    
  This key, value pair is mandatory.
This is the sort order used to force the help text to display the switches in a specific order down the page.
Examples:
        order => 1
        order => 9
    
  "helpOptions()" prints nicely formatted help text.
"helpOptions()" does not return anything.
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.
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.
As always, be aware that these 2 lines mean the same thing, sometimes:
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.
"Getopt::Simple" was written by Ron Savage <ron@savage.net.au> in 1997.
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
| 2021-01-02 | perl v5.32.0 |