我有三种方法和两种开关
我想
喜欢这样
./main --switchA
./main --switchA --switchB
./main --switchA --switchB Hello
我的代码
my $result = GetOptions{
"SwitchA" => \$opt_a,
"SwitchB:s" => \$opt_b
};
methodA if($opt_a);
methodB if($opt_a && $opt_b eq "");
methodC if($opt_a && $opt_b ne "")
我尝试了不同的东西,但实质上,如果我只想运行MethodB,方法A总是运行,如果我想运行MethodB,MethodA总是运行。
还没有完成对MethodC的测试。
任何帮助?
答案 0 :(得分:1)
methodA if $opt_a && !defined($opt_b);
methodB if $opt_a && defined($opt_b) && $opt_b eq "";
methodC if $opt_a && defined($opt_b) && $opt_b ne "";
或
if ($opt_a) {
if (defined($opt_b)) {
if ($opt_b eq "") {
methodB
} else {
methodC
}
} else {
methodA
}
}