#!/usr/gnu/bin/perl -w
#
# Name:
# test.pl.
#
# Purpose:
# To test Getopt::Simple.
#
# Usage:
# >perl testSimple.pl -q -u User -p Pass -l 333.222.111.000 -ara A -ara B
#
# Tabs:
# 4 spaces || die.
#
# Version:
# 1.00 20-Aug-97
#
# Author:
# Ron Savage <ron@savage.net.au>
# Home page: http://savage.net.au/index.html
#
# Licence:
# Australian copyright (c) 1999-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
# --------------------------------------------------------------------------
use strict;
#no strict 'refs';
use Getopt::Simple qw($switch);
my($option);
# --------------------------------------------------------------------------
sub init
{
my($default) =
{
help =>
{
type => '',
env => '-',
default => '',
order => 1,
},
quiet =>
{
type => '',
env => '-',
default => '',
order => 2,
},
username =>
{
type => '=s',
env => '$USER',
default => $ENV{'USER'} || 'RonSavage',
verbose => 'Specify the username on the remote machine',
order => 3,
},
password =>
{
type => '=s',
env => '-',
default => 'password',
verbose => 'Specify the password on the remote machine',
order => 4,
},
remoteIP =>
{
type => '=s',
env => '$REMOTEHOST',
default => $ENV{'REMOTEHOST'} || 'UnixBox',
order => 5,
},
localIP =>
{
type => '=s',
env => '$HOST',
default => $ENV{'HOST'} || '127.0.0.1',
order => 6,
},
home =>
{
type => '=s',
env => '$HOME',
default => $ENV{'HOME'} || 'C:',
verbose => 'Specify the home directory on the local machine',
order => 7,
},
remoteHome =>
{
type => '=s',
env => '-',
default => '/users/home/dir',
verbose => 'Specify the home directory on the remote machine',
order => 8,
},
ara =>
{
type => '=s@',
env => '-',
default => [qw/X Y Z/],
order => 9,
},
};
$option = Getopt::Simple -> new();
if (! $option -> getOptions($default, "Usage: testSimple.pl [options]") )
{
exit(-1); # Failure.
}
} # End of init.
# --------------------------------------------------------------------------
&init();
print "Report 1. The current value of each option: \n";
$option -> dumpOptions();
print "Report 2. The current value of some options: \n";
print "username: $option->{'switch'}{'username'}. \n";
print "password: $option->{'switch'}{'password'}. \n";
print "remoteIP: $$switch{'remoteIP'}. \n";
print "localIP: $$switch{'localIP'}. \n";
print "ara[0]: $$switch{'ara'}[0]. \n" if ($$switch{'ara'}[0]);
# Test long $switch -> {'switchName'} rather than short $$switch{'switchName'}.
# Use '->' inside double quotes, but safely use ' -> ' outside...
print "ara[1]: $switch->{'ara'}[1]. \n" if ($switch -> {'ara'}[1]);
print "ara[2]: $switch->{'ara'}[2]. \n" if ($switch -> {'ara'}[2]);
print "\n";
print "Report 3. The help text: \n";
$option -> helpOptions();
# Success.
exit(0);