1. 程式人生 > >Perl 學習筆記-高級控制結構.unless控制結構

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

over 優先 span perl 運算符 spa size i++ php

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


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