當前位置:首頁 » Perl » Perl條件語句

Perl條件語句

Perl條件語句if else,實例,使用例子教學,Perl條件語句if和unless,它們允許你控製腳本的執行。

Perl條件語句ifunless,它們允許你控製腳本的執行。if語句有五種不同的格式:

if (EXPR)
if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ...
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
STATEMENT if (EXPR)

第一種格式被歸類為一個簡單的語句,因為它可以在另一份聲明中使用,無需在塊中,如:

print "Happy Birthday!\n" if ($date == $today);

在這種情況下,如果表達式計算為一個真值(true),該消息將被打印。

第二種格式是比較熟悉的條件語句,你可能從其他語言的跨過來學習:


if ($date == $today)
{
   print "Happy Birthday!\n";
}

這將產生相同的結果和前麵的例子。
第三種格式允許異常。如果表達式為true,則執行的第一個塊,否則(else),第二塊被執行:


if ($date == $today)
{
   print "Happy Birthday!\n";
}
else
{
   print "Happy Unbirthday!\n";
}

第四種形式,允許額外的測試,如果第一個表達式不返回true,elseif語句可以要求重複無限次測試許多不同的方案:

if ($date == $today)
{
   print "Happy Birthday!\n";
}
elsif ($date == $christmas)
{
   print "Happy Christmas!\n";
}

第五形式,如果所有其他測試失敗允許額外的測試和最後的異常:

if ($date == $today)
{
   print "Happy Birthday!\n";
}
elsif ($date == $christmas)
{
   print "Happy Christmas!\n";
}else
{
   print "Happy Unbirthday!\n";
}

unless 語句自動隱含如果(if),所以unless expr是真則執行塊的邏輯相反。

print "Happy Unbirthday!\n" unless ($date == $today);

is equivalent to

print "Happy Unbirthday!\n" if ($date != $today);

例如,下麵與前麵IF ... ELSE是一個不太優雅的解決方案,雖然達到了相同的結果,例如:

unless ($date != $today)
{
   print "Happy Unbirthday -by www.gitbook.net!\n";
}
else
{
   print "Happy Birthday!\n";
}

最後的條件語句實際上是一個操作符。有條件的運算符,這是IF ... ELSE條件語句的代名詞,但更短更緊湊。供操作的格式是:

(expression) ? (statement if true) : (statement if false)

例如,我們可以效仿前麵的例子如下:

($date == $today) ? print "Happy B.Day!\n" : print "Happy Day!\n";