gpt4 book ai didi

perl - 如何使用 GetOptions 从两个参数中请求一个参数?

转载 作者:行者123 更新时间:2023-12-01 11:17:33 24 4
gpt4 key购买 nike

我正在尝试在 perl 中创建一个接受多个 CLI 参数的 CLI 脚本。我正在使用 GetOptions 函数解析这些参数。我有 2 个选项 --foo--bar 其中一个必须存在并传递给它的相应值。

有没有办法直接在 GetOptions 中处理这个问题?还是我必须为此手动编写支票?

我正在使用 Getopt::Long 模块。

编辑:当我说:

I have 2 options --foo and --bar one of which exactly one has to be present with the corresponding value passed to it.

我的意思是说这些应该是 CLI 参数,可以用作:

$ perl my-cli-script.pl --foo somevalue
$ #Or
$ perl my-cli-script.pl --bar someothervalue

但不是

$ perl my-cli-script.pl --foo somevalue --bar someothervalue
$ #or
$ perl my-cli-script.pl

最佳答案

稍后再检查。

GetOptions(
"help|h|?" => \&help,
"foo=s" => \$opt_foo,
"bar=s" => \$opt_bar,
)
or usage();

defined($opt_foo) || defined($opt_bar) )
or usage("Must specify --foo or --bar");

!( defined($opt_foo) && defined($opt_bar) )
or usage("Can't specify both --foo and --bar");

@ARGV == 0
or usage("Too many arguments");

示例用法:

sub usage {
if ( my ($msg) = @_ ) {
chomp($msg);
warn("$msg\n");
}

my $prog = basename($0);
warn("Try `$prog --help' for more information.\n");
exit(1);
}

关于perl - 如何使用 GetOptions 从两个参数中请求一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48639427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com