getopt中的可选参数

时间:2013-05-15 21:05:51

标签: perl

我正在尝试将getopt用于多个参数。我目前有getopt('s:il');我希望s成为强制搜索词,我是一个可选的整数,l是一个可选的字母。目前,当我使用全部3时,这是有效的,但是如果我在命令行中添加'-s search -i -lg',我会在我的变量中得到结果-l,而不是PERL将-i识别为空白和' g'作为l的论据。有没有解决的办法?我是否需要使用备用的getopt(s)命令?

1 个答案:

答案 0 :(得分:2)

使用getopts功能代替getopt

use warnings;
use strict;
use Getopt::Std;

my %opts;
getopts('s:il', \%opts);

use Data::Dumper;
$Data::Dumper::Sortkeys=1;
print Dumper(\%opts);

__END__

my_script.pl -s foo -i -l

$VAR1 = {
          'i' => 1,
          'l' => 1,
          's' => 'foo'
        };