Perl 數據類型
Perl 是一種弱類型語言,所以變數不需要指定類型,Perl 解釋器會根據上下文自動選擇匹配類型。
Perl 有三個基本的數據類型:標量、數組、哈希。以下是這三種數據類型的說明:
序號 | 類型和描述 |
---|---|
1 | 標量
標量是 Perl 語言中最簡單的一種數據類型。這種數據類型的變數可以是數字,字串,浮點數,不作嚴格的區分。在使用時在變數的名字前面加上一個 $,表示是標量。例如: $myfirst=123; #數字123 $mysecond="123"; #字串123 |
2 | 數組
數組變數以字元 @ 開頭,索引從 0 開始,如:@arr=(1,2,3) @arr=(1,2,3) |
3 | 哈希
哈希是一個無序的 key/value 對集合。可以使用鍵作為下標獲取值。哈希變數以字元 % 開頭。 %h=('a'=>1,'b'=>2); |
數字字面量
一、整型
Perl 實際上把整數存在你的電腦中的浮點寄存器中,所以實際上被當作浮點數看待。
在多數電腦中,浮點寄存器可以存貯約 16 位數字,長於此的被丟棄。整數實為浮點數的特例。
整型變數及運算:
$x = 12345; if (1217 + 116 == 1333) { # 執行代碼語句塊 }
8 進制和 16 進制數:8 進制以 0 開始,16 進制以 0x 開始。例如:
$var1 = 047; # 等於十進位的39 $var2 = 0x1f; # 等於十進位的31
二、浮點數
浮點數數據如:11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03。
浮點寄存器通常不能精確地存貯浮點數,從而產生誤差,在運算和比較中要特別注意。指數的範圍通常為 -309 到 +308。
實例
#!/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");
執行以上程式,輸出結果為:
第一個值為:0 第二個值為:0.01
三、字串
Perl 中的字串使用一個標量來表示,定義方式和 c 很像,但是在 Perl 裏面字串不是用 \0 來表示結束的。
Perl 雙引號和單引號的區別: 雙引號可以正常解析一些轉義字元與變數,而單引號無法解析會原樣輸出。
但是用單引號定義可以使用多行文本,如下所示:
#!/usr/bin/perl $var='這是一個使用 多行字串文本 的例子'; print($var);
執行以上程式,輸出結果為:
這是一個使用 多行字串文本 的例子
Perl 語言中常用的一些轉義字元如下表所示:
轉義字元 | 含義 |
---|---|
\\ | 反斜線 |
\' | 單引號 |
\" | 雙引號 |
\a | 系統響鈴 |
\b | 退格 |
\f | 換頁符 |
\n | 換行 |
\r | 回車 |
\t | 水準跳位字元 |
\v | 垂直跳位字元 |
\0nn | 創建八進制格式的數字 |
\xnn | 創建十六進制格式的數字 |
\cX | 控制字元,x可以是任何字元 |
\u | 強制下一個字元為大寫 |
\l | 強制下一個字元為小寫 |
\U | 強制將所有字元轉換為大寫 |
\L | 強制將所有的字元轉換為小寫 |
\Q | 將到\E為止的非單詞(non-word)字元加上反斜線 |
\E | 結束\L、\U、\Q |
實例
接下來讓我們來具體看看單引號和雙引號及轉義字元的使用:
實例
#!/usr/bin/perl
# 換行 \n 位於雙引號內,有效
$str = "IT研修 \nwww.xuhuhu.com";
print "$str\n";
# 換行 \n 位於單引號內,無效
$str = 'IT研修 \nwww.xuhuhu.com';
print "$str\n";
# 只有 R 會轉換為大寫
$str = "\uzaixian";
print "$str\n";
# 所有的字母都會轉換為大寫
$str = "\Uzaixian";
print "$str\n";
# 指定部分會轉換為大寫
$str = "Welcome to \Uzaixian\E.com!";
print "$str\n";
# 將到\E為止的非單詞(non-word)字元加上反斜線
$str = "\QWelcome to zaixian's family";
print "$str\n";
以上實例執行輸出結果為: