Perl 資料型別

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 = "入門教學 \nwww.itread01.com"; print "$str\n"; # 換行 \n 位於單引號內,無效 $str = '入門教學 \nwww.itread01.com'; print "$str\n"; # 只有 R 會轉換為大寫 $str = "\uitread01"; print "$str\n"; # 所有的字母都會轉換為大寫 $str = "\Uitread01"; print "$str\n"; # 指定部分會轉換為大寫 $str = "Welcome to \Uitread01\E.com!"; print "$str\n"; # 將到\E為止的非單詞(non-word)字元加上反斜線 $str = "\QWelcome to itread01's family"; print "$str\n";

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