天天看點

轉載 bigtiger perl 學習筆記

1,perl中單引号字元串和雙引号字元串的差別。

首先單引号沒有變量替換功能,因為<$>,<{>,<}>在單引号中都被當作普通字元。

第二反斜線除了<\\>和<\'>外,不支援其他的轉義字元。如果隻有一個單獨<\>,那麼還表示反斜線本身。

2,perl中重複操作符的讨論。

在perl中,重複操作符是<x>,小寫的x。

"ok\n"x5表示ok加一個換行符,并重複5次。

5x4,表示将字元串5重複4次,生成一個新的字元串。它的實際處理過程為:将數字5轉換為字元串"5",然後重複4次。這印證了操作數的資料類型是根據操作符的要求來确定的。

5x4.8,表示将字元串5重複4次,生成一個新的字元串。如果重複次數不是一個整數的話,那麼先将它進行floor()操作,再決定重複多少次。重複次數小于1,将産生空字元串。

5x023,表示将字元串5重複19次,這裡的重複次數以0開頭,表示8進制數字(2*8+3=19)。

5x"023",表示将字元串5重複23次,這裡的"023"雖然也會自動轉換為數字型,但不會認為它是一個8進制數字。也就是說,用首字元0表示非十進制時,自動轉換無效。

3,什麼是标量變量?

标量變量僅能含有一個值,變量名字大小寫敏感。标量變量在perl中以$開頭;在shell中取值時,需要$,指派時,不需要$;在awk和c中完全不需要$。

4,if控制結構的條件判斷部分,使用任意标量值:

如果該值為數字,0為false,其餘為true(包括負數)。

如果該值為字元串,空串為false,其餘為true。

特殊情況,由于'0'和數字0,具有相同的标量值,perl将它們同等看待,也就是說,字元串'0'是唯一一個非空,但判斷為false的字元串。

5,關于chomp操作符。

chomp函數對變量起作用,如果字元串結尾是一個換行符,chomp去掉它,并且隻去掉最後一個換行符。

誤區:chomp傳回去掉結尾回車符後的字元串,原變量内容不變。

真實情況是:chomp修改變量的值(如果需要修改的話),并傳回數字1(執行了删除換行符操作),傳回0(未執行删除換行符操作)。

chomp可用于含有多個換行符的字元串。

6,正确了解<STDIN>

<STDIN>表示一次标準輸入(一般是從鍵盤),并以換行符結束。

如果有兩個<STDIN>則表示兩次标準輸入,反映在界面上就是兩次輸入等待。

7,perl中的範圍操作符 <..>

例如,($from..$end)建立從$from到$end之間的所有值清單。

正常情況下,左值小于右值。

如果左值等于右值,則清單隻有一個元素。

如果左值大于右值,則清單為空。

8,清單指派

清單可以看作一個變量,是以有:

($first,$second,$third)=("red","green","blue");同時給3個标量指派。

($first,$second)=($second,$first),交換清單中兩個變量的值。

9,pop和push操作

pop操作,從數組中彈出最後一個元素。 既改變了數組,也獲得了傳回值。

傳回值既為彈出元素的值。是一個标量。

push操作,可以将一個元素(或一列元素)加在數組末尾。例如push @array,1,2,9。

它也改變了數組,同時也有一個傳回值,傳回值是改變後數組元素的總個數。

相應的shift和unshift對數組開頭執行類似的操作。

10,reverse操作和sort操作,都不會改變原數組(清單)的内容。

本文出自 51CTO.COM技術部落格

繼續閱讀