Perl 程式設計/條件語句
外觀
theif語句是 Perl 中主要的條件結構。語法如下
if (''boolean expression'') {
''statement'';
}
如果布林表示式計算結果為真,則執行兩個花括號之間的語句。語句周圍的花括號是強制性的,即使只有一個語句(與 C 或 Java 不同)。
一個替代語法是if語句,可用於單個語句。這涉及將條件放在語句的末尾而不是前面,並且不包含花括號
''statement'' if (''boolean expression'') ;
以下語句是同義詞
if ($x == 20) { print "hello"; }
print "hello" if ($x == 20);
你應該選擇在特定情況下更清晰的那個。例如,以下內容是合法的,但不明確
foreach my $word (@words) {
if ($word eq 'end') { last; }
print "$word\n";
}
這隱藏了last(就像break, 並且結束迴圈) 在右邊。相反,使用字尾if:
foreach my $word (@words) {
last if $word eq 'end';
print "$word\n";
}
布林表示式條件可以包含下一節中介紹的任何一個比較運算子。
可以使用布林表示式運算子將多個條件一起檢查
- &&- 邏輯與,C 風格;用於大多數條件
- and- 邏輯與,但優先順序較低;用於流程控制
- ||- 邏輯或,C 風格;用於大多數條件
- or- 邏輯或,但優先順序較低;用於流程控制
- !- 邏輯非,C 風格
- not- 邏輯非,但優先順序較低
if (($x == 20) || (($x > 0) && ($x < 10) && !($x == 5))) {
print "x is equal to 20 or either between 0 and 10, but not 5.\n";
}
條件語句也可以使用elsifandelse結構進行擴充套件
if (''boolean expression 1'') {
''statement 1;''
} elsif (''boolean expression 2'') {
''statement 2;''
} else {
''statement 3;''
}
注意,一個if語句後跟任意數量(包括零)個elsif語句,最後是一個可選的else語句。一個elsif的語句將被執行,如果它的布林表示式為真,並且沒有前面的(els)if語句的布林表示式為真。尾隨的else(如果存在) 將被執行,如果前面的所有語句的布林表示式都不為真。
如果你想將條件語句縮短成一行,你可以使用快捷語法
my $bar = 'exists';
my $whatExists = (exists $foo) ? $bar : 'does not exist';