我正在从Getopt::Long更新使用GetOptions
的现有Perl脚本。我想添加一个选项,该选项将字符串作为其参数,并且只能具有以下3个值之一:small、medium或large。如果指定了任何其他字符串值,是否有办法使Perl抛出错误或终止脚本?到目前为止,我已经:
my $value = 'small';
GetOptions('size=s' => \$value);
我正在从Getopt::Long更新使用GetOptions
的现有Perl脚本。我想添加一个选项,该选项将字符串作为其参数,并且只能具有以下3个值之一:small、medium或large。如果指定了任何其他字符串值,是否有办法使Perl抛出错误或终止脚本?到目前为止,我已经:
my $value = 'small';
GetOptions('size=s' => \$value);
5条答案
按热度按时间nle07wnf1#
您可以使用子例程来处理该选项的处理。
我把大小放入一个散列中,但是你可以使用一个数组和grep,如toolic所示。
x8diyxa72#
一种方法是使用grep检查该值是否法律的:
jogvjijk3#
这只是
GetOptions
返回后需要执行的几项检查之一。GetOptions
是否成功。@ARGV
中的参数数目。@ARGV
中的参数。下面是我执行这些检查的方法:
下面是我处理失败的方法:
6pp0gazn4#
这可能有点过头了,但也可以看看Getopt::Again,它通过每个命令行参数的
process
配置值实现验证。gstyhher5#
Getopt::Long的替代方法是
Getopt::Declare
,它具有内置的模式支持,但稍微详细一些:测试回合: