|| 小訣竅
2013-08-26 16:07
小訣竅
接下來我們來點飯後甜點,也就是 || 算符。其實不只 || 算符,其他的邏輯算符也可以拿來作流程控制的小小螺絲釘。不過首先我自己偏愛使用 || (也是使用機會比較高的),而且我們只打算來個甜點,這時候顯然不適合大餐了。
我們有時候會希望某些變數可以有預設值,例如副常式的參數,或是希望使用者輸入的變數等等。所以你當然可以這樣寫:
sub input {
my $key = shift;
$key = "預設值" unless ($key);
print "$key\n";
}
這個副常式甚麼也沒作,就只拿了使用者傳來的參數,然後印出來。可是我們還可以讓他更簡單一些,我們把他改成這樣:
sub input {
my $key = shift || "預設值";
print "$key\n";
}
這時候,|| 算符被我們拿來當一個判斷的工具。我們先確定使用者有沒有傳入參數,也就是平常我們所使用的shift,如果@_中是空陣列,那麼 $key = shift 就會得到偽值,這時候 || 就會啟動,讓我們的預設值產生效果。因此我們就得到 $key = "預設值"。
另外,|| 還常常被用來進行意外處理。因為我們必須知道,如果某個運算式失敗,那麼我們就可以讓程式傳回錯誤訊息。就像這樣:
output() || die "沒有回傳值";
sub output {
return 0;
}
我們在程式裡面呼叫 output 這個副常式,不過因為回傳值是 0,於是 || 也發生效用,就讓程式中斷在這裡,並且印出錯誤訊息。