溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Perl 學(xué)習(xí)筆記-高級控制結(jié)構(gòu).unless控制結(jié)構(gòu)

發(fā)布時間:2020-07-19 04:28:48 來源:網(wǎng)絡(luò) 閱讀:469 作者:nxf198609 欄目:開發(fā)技術(shù)

1.unless控制結(jié)構(gòu)

  類似于獨立的else語句; 要么條件為真, 要么執(zhí)行語句塊內(nèi)的代碼;  unless(<condition>){code...;} 等價于  if(<condition>){}else{code...;}  也就是當(dāng)條件為假是執(zhí)行.

unless (0) {    print "Hello"; #Hello}

2. until控制結(jié)構(gòu)

  until就是改裝過的while, 區(qū)別在于它在條件為假是執(zhí)行代碼塊.

$i = 2;$j = 10;until($i>$j){    $i++;    print "Hello\n";
}

3.條件修飾詞

  為了進一步簡化表達, 表達式后面可以接著一個用來控制它的修飾詞, 例如if修飾詞可以用來模擬一個if塊. print "Hello Roger" if 0;#無輸出  雖然條件寫在后面, 但是仍然是先執(zhí)行, 實際上就是一個if控制塊;  所以學(xué)習(xí)Perl的時候先把語句讀完才能理解意義.

  有一些限制: 修飾詞兩邊都只能寫單個表達式, 修飾詞的左邊不能放多條語句, foreach只能用$_變量.

4.裸塊控制結(jié)構(gòu)

  包含在花括號內(nèi), 相當(dāng)于一個只執(zhí)行一次的偽循環(huán),在為臨時詞法變量圈定有效范圍時很有效. 當(dāng)某個變量只會在幾行代碼里用到時, 可以放它們在一個裸塊里, 并就近聲明變量.

5.elsif子句 -- 注意不是 elseif

if(<condition>){
}elsif(<condition2>){
}elsif(<condition3>){
}else{
}

6.自增自減

  對Perl中的標(biāo)量的操作,類似C語言. 也分前后, 效果和C語言一致.

7.for控制結(jié)構(gòu)

  感覺很像PHP里面的for循環(huán),哈哈!

(=;<;++...

8. 3種循環(huán)控制

  => last操作

    相當(dāng)于C中的break; 表示立即結(jié)束循環(huán). 用法如:  last; 

  => next操作

    相當(dāng)于C中的continue; 表示立即結(jié)束當(dāng)前迭代; 用法如:  next if /<pattern>/;  

  => redo操作

    控制返回到本次循環(huán)的頂端, 不會經(jīng)過任何條件測試, 也不會進入下一次循環(huán). 

  可以為塊加標(biāo)簽,以便更好地控制,  但是不常見.

9.三目運算符  ?: 和邏輯操作

  和C語言中的一致.

  "定義否"操作符: // , 由于|| 操作符能提供默認值:undef, 但是沒有考慮到特殊情況, 就是已定義的假值, 也可能被意外替換為默認值.  

  有時需要檢查一個標(biāo)量, 如果沒有定義則定義, 如果已經(jīng)定義了就保留原值:  $last_name = $last_name{$someone} // '(No last name)'; 

  || 和 && 可以使用單詞書寫: or 和 and, 如 open MYFILE, "myfile.txt" or die "Can't open file myfile.txt!"; ,它們效果相同, 但是優(yōu)先級要低得多, 所以可以不用寫很多括號.


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI