【发布时间】:2019-11-27 07:18:05
【问题描述】:
我对 Perl 编程很陌生。我想使用 GetOptions 来解析我的脚本的输入参数。我有一个简单的问题 - 如果参数混乱或参数缺少值(对于强制参数),我希望脚本退出使用消息。 src_xml 是强制参数,但如果我运行脚本不提供此参数的值,我会收到一条错误消息,提示在tenant_tenant.pl 的 -e 中使用未初始化的值 $src_xml。我究竟做错了什么?还是我必须检查每个变量是否已定义?
my $dev;
my $src_xml;
my $tgt_syscd = 'L86';
my $tgt_path = '/tmp/test/exports';
my $help;
GetOptions('src_xml=s' => \$src_xml,
'tgt_syscd=s' => \$tgt_syscd,
'tgt_path=s' => \$tgt_path,
'dev' => \$dev,
'h|help' => \$help
) or die "Usage: perl $0 --src_xml NAME --tgt_syscd NAME --tgt_path NAME
\n";
#checking for help
if ( defined $help ) {
die $help_message;
}
【问题讨论】:
-
Getopt::Long 不支持强制选项。您必须检查它是否从开始时的值更改,或者您可以使用自定义子例程来检测是否设置了选项。