perl 使用GetOptions来定义一个参数,当指定该参数并且缺少输入时,该参数会出错,但如果根本未指定该参数,则不会出错?

oknwwptz  于 2023-01-09  发布在  Perl
关注(0)|答案(1)|浏览(152)

我们如何定义一个CLI参数,如果我们不给予输入,则会出错,但如果我们根本不使用该参数,则不会出错?
示例:我通过以下方式调用程序:

perl program.pl --param1 input1

这应该是一个错误:

perl program.pl --param1

但应继续执行:

perl program.pl

在GetOptions中定义param1=sparam1:s不会区分在没有输入的情况下提供--param1和根本不提供--param1(“=”case使param1为undef,而“:”在这两种情况下都初始化为默认值)。

mefy6pfw

mefy6pfw1#

所请求的行为由=s提供。

#!/usr/bin/perl

use v5.14;
use Getopt::Long;

GetOptions( "param1=s" => \my $param1 )
   or die "Usage\n";

say $param1 // "[undef]";
$ ./a.pl
[undef]

$ ./a.pl --param1 foo
foo

$ ./a.pl --param1
Option o requires an argument
Usage

相关问题