此代碼是if
語句;我想測試$rtgene
是否包含trn
。 我測試了$rtgene= nad3
代碼:Perl如果語句混淆
if ($rtgene!~/trn/){
$end=$data[$i][0]+100;
}
else{
$end =$data[$i][1];
}
print $end;
這是另一種表達不工作:
($rtgene!~/trn/)? $end=$data[$i][0]+100 : $end=$data[$i][1]; print $end;
的問題是在第一代碼(正常的,如果else語句),它的工作原理,並給我預期的結果,但另一個(最後一行)它不工作;它總是執行else
語句。
問題:這個問題的原因是什麼?如何解決它?
我相信@ ysth的回答是正確的。除此之外,爲什麼不使用if/else語句呢?您使用'?:'運算符會獲得什麼好處?你也可以考慮扭轉這種狀況;在if/else語句中使用'!〜'這樣的負面條件可能會造成混淆。 –