Perl中的可否定选项

xtfmy6hx  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(135)

我有一个可否定的选项定义为top!
当命令使用此选项时,请说:command_name -top,向用户输出警告
其代码片段如下:

if ($args{top}) { print "Warning"; }

但是,当命令使用否定选项时,可以说:command_name -notop,则不会向用户输出相同得警告.
是否有办法在两种情况下获得相同的警告?

yhuiod9q

yhuiod9q1#

是的,您可以确定您的选项(以任何形式)是否已在命令行中使用。由于您使用的是散列选项,因此您可以检查选项exists

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

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

print "Warning\n" if exists $args{top};

如果在命令行中使用-top-notop,则将打印Warning。如果不使用-top-notop,则不会打印Warning

相关问题