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