Perl 學習筆記-高級控制結構.unless控制結構
類似於獨立的else語句; 要麽條件為真, 要麽執行語句塊內的代碼; unless(<condition>){code...;} 等價於 if(<condition>){}else{code...;} 也就是當條件為假是執行.
unless (0) { print "Hello"; #Hello}
2. until控制結構
until就是改裝過的while, 區別在於它在條件為假是執行代碼塊.
$i = 2;$j = 10;until($i>$j){ $i++; print "Hello\n"; }
3.條件修飾詞
為了進一步簡化表達, 表達式後面可以接著一個用來控制它的修飾詞, 例如if修飾詞可以用來模擬一個if塊. print "Hello Roger" if 0;#無輸出 雖然條件寫在後面, 但是仍然是先執行, 實際上就是一個if控制塊; 所以學習Perl的時候先把語句讀完才能理解意義.
有一些限制: 修飾詞兩邊都只能寫單個表達式, 修飾詞的左邊不能放多條語句, foreach只能用$_變量.
4.裸塊控制結構
包含在花括號內, 相當於一個只執行一次的偽循環,在為臨時詞法變量圈定有效範圍時很有效. 當某個變量只會在幾行代碼裏用到時, 可以放它們在一個裸塊裏, 並就近聲明變量.
5.elsif子句 -- 註意不是 elseif
if(<condition>){ }elsif(<condition2>){ }elsif(<condition3>){ }else{ }
6.自增自減
對Perl中的標量的操作,類似C語言. 也分前後, 效果和C語言一致.
7.for控制結構
感覺很像PHP裏面的for循環,哈哈!
(=;<;++...
8. 3種循環控制
=> last操作
相當於C中的break; 表示立即結束循環. 用法如: last;
=> next操作
相當於C中的continue; 表示立即結束當前叠代; 用法如: next
=> redo操作
控制返回到本次循環的頂端, 不會經過任何條件測試, 也不會進入下一次循環.
可以為塊加標簽,以便更好地控制, 但是不常見.
9.三目運算符 ?: 和邏輯操作
和C語言中的一致.
"定義否"操作符: // , 由於|| 操作符能提供默認值:undef, 但是沒有考慮到特殊情況, 就是已定義的假值, 也可能被意外替換為默認值.
有時需要檢查一個標量, 如果沒有定義則定義, 如果已經定義了就保留原值: $last_name = $last_name{$someone} // '(No last name)';
|| 和 && 可以使用單詞書寫: or 和 and, 如 open MYFILE, "myfile.txt" or die "Can't open file myfile.txt!"; ,它們效果相同, 但是優先級要低得多, 所以可以不用寫很多括號.
Perl 學習筆記-高級控制結構.unless控制結構