perl 中的可否定选项

Posted

技术标签:

【中文标题】perl 中的可否定选项【英文标题】:Negatable options in perl 【发布时间】:2021-08-15 15:55:10 【问题描述】:

我有一个可否定的选项,定义为 top!

当命令使用此选项时,例如:command_name -top,向用户打印警告

它的代码sn-p如下:

if ($argstop)  print "Warning"; 

但是,当命令使用否定选项时,例如:command_name -notop,它不会向用户输出相同的警告。

有没有办法为这两种情况获得相同的警告?

【问题讨论】:

【参考方案1】:

是的,您可以确定您的选项(以任何一种形式)是否已在命令行上使用。 由于您使用哈希作为选项,因此您可以检查选项 exists:

use warnings;
use strict;
use Getopt::Long qw(GetOptions);

my %args;
GetOptions(\%args, qw(top!));

print "Warning\n" if exists $argstop;

如果您在命令行上使用-top-notop,这将打印Warning。如果您不使用-top-notop,它将不会打印Warning

【讨论】:

以上是关于perl 中的可否定选项的主要内容,如果未能解决你的问题,请参考以下文章

INSERT 失败,因为以下 SET 选项仅在 Perl Sybase 中的设置不正确

滑块菜单片段中的可交换选项卡

仅当一个表达式中的可选项不是 nil 时才调用函数?

更改 Perl 中的默认正则表达式行为?

Prolog DCG中的可选项或重复项

PyQt5:QTabWidget中的可关闭选项卡?