【发布时间】:2017-04-06 12:56:26
【问题描述】:
我对 Perl 完全陌生,我正在尝试找出 Perl 脚本解析脚本参数的问题。
我有以下名为 sample-perl.pl 的 Perl 脚本:
use strict;
use warnings;
use 5.010;
use Getopt::Long qw(GetOptions);
my $source_address;
my $dest_address;
GetOptions('from=s' => \$source_address,
'to=s' => \$dest_address) or die "Usage: $0 --from NAME --to NAME\n";
if ($source_address) {
say $source_address;
}
if ($dest_address) {
say $dest_address;
}
如果我使用类似(我忘记输入第二个选项)之类的命令:
perl sample-perl.pl --from nyc lon
Output will be: nyc
如果最后有一个额外的字符串,我如何强制它被检测到并显示错误?
解决方案:
添加这将至少对我的情况有所帮助:
if(@ARGV){
//throw error
}
【问题讨论】:
-
检查
scalar @ARGV?如果@ARGV > 0有(非选项)参数未被GetOptions()在命令行中拾取 -
@HåkonHægland 好像是这样。我希望我能接受这个答案:)
标签: perl getopt getopt-long