Perl - 第三章 | Perl 資料類型
Perl 是一種弱語言,所以變量不需要指定類型,Perl 解釋器會根據上下文自動選擇匹配類型。
Perl 有三個基本的資料類型:標量、數組、哈希。以下是這三種資料類型的說明:
Sr.No. | 類型與說明 |
---|---|
1 | 標量:標量是簡單的變量。它們前面帶有一個美元符號($)。標量可以是數字,字符串或引用。引用實際上是變量的地址,我們將在接下來的章節中看到它。 |
2 | 數組:數組是用數字索引訪問的標量的有序列表,數字索引以0開頭。它們前面帶有“at”符號(@)。 |
3 | 哈希:哈希是你使用鍵作為下標訪問的key/value對的無序集合。它們前面有一個百分號(%)。 |
數字文字
Perl 在內部將所有數字存儲為帶符號整數或雙精度浮點值。數字文字以以下任何浮點或整數格式指定:
類型 | 價值 |
---|---|
整數 | 1234 |
負整數 | -100 |
浮點數 | 2000.1 |
科學計數法 | 16.12E14 |
十六進制 | 0xffff |
八進制 | 0577 |
整數
Perl 實際上把整數存在你的計算機中的浮點寄存器中,所以實際上被當作浮點數看待。
在多數計算機中,浮點寄存器可以存貯約16位數字,長於此的被丟棄。整數實為浮點數的特例。
整型變量及運算:1
2
3
4$x = 12345;
if (1217 + 116 == 1333) {
# Do something...
}8進制和16進制數:8進制以0開始,16進制以0x開始。例如:
1
2var1 = 047; # 等於十進制的39
var2 = 0x1f; # 等於十進制的31浮點數
浮點數資料如:11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03。
浮點寄存器通常不能精確地存貯浮點數,從而產生誤差,在運算和比較中要特別注意。指數的範圍通常為-309到+308。例如:1
2
3
4
5
6#!/usr/bin/perl
$value = 9.01e+21 + 0.01 - 9.01e+21;
print ("第一個值為:", $value, "\n");
$value = 9.01e+21 - 9.01e+21 + 0.01;
print ("第二個值為:", $value, "\n");執行以上程序,輸出結果為:
1
2第一個值為:0
第二個值為:0.01
字符串文字
字符串是字符序列。它們通常是用單引號(’)或雙引號(“)引起來的字母數字值,它們的工作方式與 UNIX Shell 引號非常相似,你可以在其中使用單引號字符串和雙引號字符串。
雙引號字符串文字允許變量插值,而單引號字符串則不允許。當某些字符以反斜杠開頭時,它們具有特殊含義,並且用於表示換行符(\n)或製表符(\t)。
你可以將換行符或以下任何Escape序列直接嵌入雙引號字符串中:
轉義序列 | 意義 |
---|---|
\ | 反斜杠 |
' | 單引號 |
" | 雙引號 |
\a | 警報或鈴聲 |
\b | 退格鍵 |
\f | 換頁 |
\n | 新隊 |
\r | 回車 |
\t | 水平標籤 |
\v | 垂直標籤 |
\0nn | 建立八進制格式的數字 |
\xnn | 建立十六進制格式的數字 |
\cX | 控製字符,x可以是任何字符 |
\u | 將下一個字符強制為大寫 |
\l | 強制下一個字符轉換為小寫 |
\U | 強制所有以下字符大寫 |
\L | 強制所有以下字符轉換為小寫 |
\Q | 反斜杠以下所有非字母數字字符 |
\E | 結束\ U,\ L或\ Q |
例子:
讓我們再次看看字符串在單引號和雙引號之間的行為。在這裡,我們將使用上表中提到的字符串轉義符,並將使用標量變量來分配字符串值。
1 | #!/usr/bin/perl |
這將產生以下結果:
1 | Welcome to |