Perl 學習筆記-高級控制結構.unless控制結構

1.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 if /<pattern>/;  

  => 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!"; ,它們效果相同, 但是優先級要低得多, 所以可以不用寫很多括號.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章