2013-03-01 64 views
0

我有三個方法和兩個開關的Getopt ::朗多臺交換機

我想

  • 治法如果SwitchA設置
  • 方法b,如果到和SwitchB被設置爲運行運行
  • MethodC如果到和SwitchB被設置爲運行,並用於SwitchB上arguement產生

贊所以

./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 "") 

我曾嘗試不同的東西,但實際上,如果我只是想方法b運行,方法A始終運行,如果我想方法b運行,治法始終運行。

還沒有到測試MethodC呢。

任何幫助?

+0

此心不是實際的代碼。 – 2013-03-01 15:35:35

回答

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 
    } 
}