Perl筆記(一)
來源:互聯網
上載者:User
1 Perl中所有數字內部格式一致,只有雙精確度浮點數(Perl內部沒有整數值)。
2 Perl中允許用底線來分隔比較長的整數,如612980400283768和612_980_400_283_768是相同的值。
3 Perl中的非十進位整數:八進位以0開頭,十六機制以0x開頭,二進位以0b開頭。
4 Perl中的數字操作符除加減乘除之外,還有模數運算子(%)和指數操作符(**)。對於%,兩個運算元首先變成對應的整數值,如10.5%3.2首先變成10%3後再計算。在模數運算中,如果有一個運算元為負數,其結果和Perl的具體實現有關。另外,通常不能進行一個負數的非整數次方的運算(這將產生一個複數),除非有了Math::Complex模組。
5 單引號字串
單引號不是字串的一部分,但Perl可以用它辨別字串的開始和結束。除了單引號或者反斜線(包括換行字元,如果字串在下一行繼續)之外的任何字元都表示它自身。要得到一個反斜線,可以把兩個反斜線放在一起;要得到單引號,需要在單引號之前加上反斜線。單引號字串中的/n不會被當作分行符號來處理,其僅僅是兩個字元/和n。只有在反斜線後面接的是/或者是單引號'才會被當作特殊字元來處理。
6 雙引號字串
雙引號字串中/n為分行符號。雙引號中的逸出字元:
------------------------------
| 符號 | 含義 |
------------------------------
| /n | 換行 |
------------------------------
| /r | 斷行符號 |
------------------------------
| /t | 定位字元 |
------------------------------
| /f | formfeed |
------------------------------
| /b | 退格 |
------------------------------
| /a | 響鈴 |
------------------------------
| /e | escape(ASCII中的escape字元) |
------------------------------
| /007 | 任何八進位值(這裡是007=bell) |
------------------------------
| /x7f | 任何十六進位值(這裡是007=bell) |
------------------------------
| /cC | 一個控制符(這裡是Ctrl+c) |
------------------------------
| // | 反斜線 |
------------------------------
| /" | 雙引號 |
------------------------------
| /l | 下個字元小寫 |
------------------------------
| /L | 接下來的字元均小寫直到/E |
------------------------------
| /u | 下個字元大寫 |
------------------------------
| /U | 接下來的字元均大寫知道/E |
------------------------------
| /Q | 在non-word字元之前加上/,直到/E |
------------------------------
| /E | 結束/L, /E和/Q |
------------------------------
雙引號字串的另一個性質是可以進行變數插入,也即當使用字串時,如果字串中含有變數名,將由變數的當前值替換它。
7 字串操作符
字串可由.操作符串連。
字串重複操作符為小寫字母x,如"fred" x 3 #"fredfredfred", 5 x 4 #實際上是"5555"。
8 數字和字串之間的自動轉換
Perl將在需要的時候根據標量值之間的操作符自動進行數字和字串之間的自動轉換。
9 Perl中的標量變數都形如$fred。當一個字串由雙引號括起來時,如果變數前沒有反斜線,則變數的值會被替換(如果一個變數未被賦值,則將使用空值)。Perl提供了分隔字元{}將變數名括起來,如:
$what="brontosaurus steak";
$n=3;
print "fred ate $n $whats./n"; #輸出不是steaks,而是$whats的值
print "fred ate $n ${what}s./n"; #現在使用$what的值。
10 Perl中沒有Boolean類型,但可以利用一下幾條法則協助記憶:
如果值為數字,0是false,其餘為真;
如果值為字串,則空串('')為false,其餘為真;
如果值的類型既不是數字又不是字串,則將其轉換為數值或字串再利用上述規則。
11 行輸入運算子:<STDIN>。<STDIN>作為標量值來使用,Perl每次在標準輸入中讀入文本下一行,將其傳給<STDIN>。利用<STDIN>讀入的字串行尾是有分行符號的,可以利用chomp函數來去掉。chomp是一個函數,作為函數它有一個傳回值,為移除的字元的個數。在使用chomp時,可以使用或不使用(),這又是perl中的一條通用規則:除非移除它們會改變含義,否則括弧是可以省略的。如果結尾有兩個或兩個以上的分行符號,chomp僅去掉一個。
12 undef值
Perl中,變數在第一次賦值前有一個特殊值undef,如果該變數是數值型,則undef為0;如果是字串,則undef為空白串。
13 defined函數