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';