如何检查是否只定义了-a
or -b
or之一-c
?
所以不在一起-a -b
,也不-a -c
,也不-b -c
,也不-a -b -c
。
现在有
use strict;
use warnings;
use Carp;
use Getopt::Std;
our($opt_a, $opt_b, $opt_c);
getopts("abc");
croak("Options -a -b -c are mutually exclusive")
if ( is_here_multiple($opt_a, $opt_c, $opt_c) );
sub is_here_multiple {
my $x = 0;
foreach my $arg (@_) { $x++ if (defined($arg) || $arg); }
return $x > 1 ? 1 : 0;
}
以上工作,但不是很优雅。
这里已经是类似的问题,但这是不同的,因为检查两个独占值很容易 - 但这里有多个。