1

I have a negatable option defined as top!.

When a command uses this option, say : command_name -top, prints a warning to the user

Code snippet for it is as follows :

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

But, when a command uses a negated option, say : command_name -notop, it does not print the same warning to the user.

Is there a way to get same warning for both the cases?

Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
Dhanashri P
  • 111
  • 5

1 Answers1

5

Yes, you can determine if your option (in either form) has been used on the command line or not. Since you are using a hash for your options, you can check if the option exists:

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

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

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

This will print Warning if you use either -top or -notop on the command line. It will not print Warning if you do not use -top or -notop.

toolic
  • 57,801
  • 17
  • 75
  • 117