in reply to Re: Getopt::[Std|Long]. How to define an option -L1
in thread Getopts::[Std|Long]. How define a option -L1

That is Ok. But how I should give to script options like -L1 or -L2. I mean, that my script must check "Oh master, I see that you defined -L1! Ok, i am do it"? Do I should check bolean -L and later 1 or 2?
  • Comment on Re^2: Getopts::[Std|Long]. How define a option -L1

Replies are listed 'Best First'.
Re^3: Getopt::[Std|Long]. How to define an option -L1
by Athanasius (Archbishop) on Aug 27, 2013 at 06:48 UTC

    Ok, I think I understand what you’re looking for a little better now. Use Getopt::Long:

    #! perl use strict; use warnings; use Getopt::Long; my $L1 = ''; my $L2 = ''; my $p = ''; GetOptions('L1=s' => \$L1, 'L2=s' => \$L2, p => \$p); print "L1 switch: $L1\n"; print "p switch: $p\n";

    as documented in Getopt::Long. Output:

    16:39 >perl 698_SoPW.pl --L1 foo -p L1 switch: foo p switch: 1 16:39 >

    But note that if there is no L2 switch defined here, --L (or even -l) will be accepted as an abbreviation for L1. From the documentation, it appears that this is a feature, not a bug: see Case and abbreviations.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      Too much typing :)  my %opt; GetOptions( \%opt, qw[ L1=s L2=s p! ]);
        Thanks to all!