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";

以上實例執行輸出結果為: