gpt4 book ai didi

perl - 当一个参数错误地将另一个参数作为其值时,perl 中的多个命令行参数

转载 作者:行者123 更新时间:2023-12-01 05:37:48 25 4
gpt4 key购买 nike

我正在开发一个 perl 程序 (perl 5.8)。该程序使用命令行参数作为输入。我面临的问题是 - 我正在使用多个命令行参数。例如

tool -f "arg1_val" -p "arg2_val"

但在用户忘记指定值的情况下说

tool -f -p "arg2_val"

它没有出错,而是假定 -f = -p

我正在使用 Getopt::Long和例程 GetOptions

GetOptions ("f=s" => \$opt_f,
"p=s" => \$opt_p,
);

最佳答案

您应该使用 : 而不是 =

您应该检查 Getopt::Long 中的“选项规范摘要” .这是来自 GetOptions .

=s: Option takes a mandatory string argument. This string will be assigned to the option variable. Note that even if the string argument starts with - or --, it will not be considered an option on itself.

:s: Option takes an optional string argument. This string will be assigned to the option variable. If omitted, it will be assigned "" (an empty string). If the string argument starts with - or --, it will be considered an option on itself.

下面应该可以。如果省略任何参数,相应的变量将被分配 ""

GetOptions ('f:s' => \$opt_f,
'p:s' => \$opt_p,
) or die("Error in command line arguments\n");

# later you can check for argument variable if any option is mendatory for you.
die "No value passed to -f\n" unless($opt_f);

关于perl - 当一个参数错误地将另一个参数作为其值时,perl 中的多个命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793994/

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