gpt4 book ai didi

perl - 使用 perl Getopt 惯用地处理重复的选项,如 -v -vv -vvv

转载 作者:行者123 更新时间:2023-12-01 23:27:06 25 4
gpt4 key购买 nike

我想像 OpenSSH 那样处理冗长级别选项:通过多次传递 -v 选项。

Getopt::Std 不会递增无参数选项值,而只是将它们设置为 1。这意味着使用 Getopt::Std 传递 -vvv 将产生 $opt_v == 1 并且在这种情况下我需要它为 3

Getopt::Longv+ option-spec 正确理解 -v -v(目标变量结束 2),但它会将 -vvv 误解为名为 vvv 的选项——未定义并导致错误。

如何获得所需的行为?

最佳答案

我在写完问题后找到了答案,但在发布之前——经典。


处理此问题的最佳方法是使用 Getopt::Longbundling:

use Getopt::Long qw(:config bundling);
GetOptions ("v+" => \$verbose);

这会按预期处理 -v -vv -vvv:$verbose == 6


如果出于某种原因您不能或不想使用捆绑,唯一的其他方法是定义选项vvvvv等到合理的最大值:

use Getopt::Long;
GetOptions (
"v+" => \$verbose);
"vv" => sub { $verbose += 2 },
"vvv" => sub { $verbose += 3 },
);

这也会按预期处理 -v -vv -vvv:$verbose == 6

关于perl - 使用 perl Getopt 惯用地处理重复的选项,如 -v -vv -vvv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56418722/

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