Perl 數(shù)據(jù)類型

Perl 是一種弱類型語言,所以變量不需要指定類型,Perl 解釋器會根據(jù)上下文自動選擇匹配類型。

Perl 有三個基本的數(shù)據(jù)類型:標量、數(shù)組、哈希。以下是這三種數(shù)據(jù)類型的說明:

w3cschool

數(shù)字字面量

一、整型

PERL實際上把整數(shù)存在你的計算機中的浮點寄存器中,所以實際上被當作浮點數(shù)看待。

在多數(shù)計算機中,浮點寄存器可以存貯約16位數(shù)字,長于此的被丟棄。整數(shù)實為浮點數(shù)的特例。

整型變量及運算:

$x = 12345;
if (1217 + 116 == 1333) {
	# 執(zhí)行代碼語句塊
}

8進制和16進制數(shù):8進制以0開始,16進制以0x開始。例如:

$var1 = 047;    # 等于十進制的39
$var2 = 0x1f;   # 等于十進制的31

二、浮點數(shù)

浮點數(shù)數(shù)據(jù)如:11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03。

浮點寄存器通常不能精確地存貯浮點數(shù),從而產(chǎn)生誤差,在運算和比較中要特別注意。指數(shù)的范圍通常為-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");

執(zhí)行以上程序,輸出結(jié)果為:

第一個值為:0
第二個值為:0.01

三、字符串

Perl中的字符串使用一個標量來表示,定義方式和c很像,但是在Perl里面字符串不是用0來表示結(jié)束的。

Perl雙引號和單引號的區(qū)別: 雙引號可以正常解析一些轉(zhuǎn)義字符與變量,而單引號無法解析會原樣輸出。

但是用單引號定義可以使用多行文本,如下所示:

#!/usr/bin/perl 

$var='這是一個使用

多行字符串文本

的例子';

print($var);

執(zhí)行以上程序,輸出結(jié)果為:

這是一個使用

多行字符串文本

的例子

Perl 語言中常用的一些轉(zhuǎn)義字符如下表所示:

轉(zhuǎn)義字符含義
\\反斜線
\'單引號
\"雙引號
\a系統(tǒng)響鈴
\b退格
\f換頁符
\n換行
\r回車
\t水平制表符
\v垂直制表符
\0nn創(chuàng)建八進制格式的數(shù)字
\xnn創(chuàng)建十六進制格式的數(shù)字
\cX控制字符,x可以是任何字符
\u強制下一個字符為大寫
\l強制下一個字符為小寫
\U強制將所有字符轉(zhuǎn)換為大寫
\L強制將所有的字符轉(zhuǎn)換為小寫
\Q將到\E為止的非單詞(non-word)字符加上反斜線
\E結(jié)束\L、\U、\Q

實例

接下來讓我們來具體看看單引號和雙引號及轉(zhuǎn)義字符的使用:

#!/usr/bin/perl

# 換行 \n 位于雙引號內(nèi),有效
$str = "W3Cschool教程  \nm.hgci.cn";
print "$str\n";

# 換行 \n 位于單引號內(nèi),無效
$str = 'W3Cschool教程  \nm.hgci.cn';
print "$str\n";

# 只有 w 會轉(zhuǎn)換為大寫
$str = "\uw3cschool";
print "$str\n";

# 所有的字母都會轉(zhuǎn)換為大寫
$str = "\Uw3cschool";
print "$str\n";

# 指定部分會轉(zhuǎn)換為大寫
$str = "Welcome to \Uw3cschool\E.cn!"; 
print "$str\n";

# 將到\E為止的非單詞(non-word)字符加上反斜線
$str = "\QWelcome to w3cschool's family";
print "$str\n";

以上實例執(zhí)行輸出結(jié)果為:

1470826982419350