develooper Front page | perl.beginners | Postings from January 2002

Re: Getopt::Long problem (Allegedly)

Thread Previous
From:
Briac Pilpré
Date:
January 30, 2002 14:06
Subject:
Re: Getopt::Long problem (Allegedly)
Message ID:
20020130220613.73445.qmail@onion.perl.org
On Wed, 30 Jan 2002 21:47:15 -0000, Angus Laycock wrote:
> ------=_NextPart_000_01D4_01C1A9D7.AEC826A0
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> 
> Hi,
> 
> I wrote this today on UNIX . When I tested the script, calling it with 
> all the options (f s D P U S e q ) the "-s" option would not return the 
> value from the command line. All the other variables got populated. I 
> then change the "s:s" to "f:s" and that worked. I am trying to replace 
> some software which uses -s as an option and need to handle the options 
> the same in the PERL replacement. Is there a bug with "s:s"?
> 

By default, Getopt::Long is case insensitive. Try adding the "bundling"
and "ignore_case" options.

cf perldoc Getopt::Long (Configuring Getopt::Long)

#!/usr/bin/perl -w
use strict;
use Getopt::Long qw(GetOptions);
Getopt::Long::Configure ("bundling", "ignore_case");

my($DATABASE, $PASSWORD, $USER, $SERVER, $ERR, $SPROC, $QUERY, $TT)
	=('')x8;

GetOptions(
    'f:s' => \$TT,
    's:s' => \$SPROC,
    'D:s' => \$DATABASE,
	'P:s' => \$PASSWORD,
    'U:s' => \$USER,
    'S:s' => \$SERVER,
    'e'   => \$ERR,
    'q:s' => \$QUERY
) || die "Options incorrect\n";

print <<"_EOT_";
DATABASE = $DATABASE
PASSWORD = $PASSWORD
USER     = $USER
SERVER   = $SERVER
ERR      = $ERR
SPROC    = $SPROC
QUERY    = $QUERY
TT       = $TT
_EOT_

__END__
-- 
briac
 << dynamic .sig on strike, we apologize for the inconvenience >>


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About