Pazitiff has asked for the wisdom of the Perl Monks concerning the following question:

Hello, gurus! I need run script with options -p with "value" and "logical" -L1. What is better in that case "Std" or "Long". Can you give me simple example?
  • Comment on Getopts::[Std|Long]. How define a option -L1

Replies are listed 'Best First'.
Re: Getopt::[Std|Long]. How to define an option -L1
by Athanasius (Archbishop) on Aug 27, 2013 at 06:03 UTC
      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?

        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,