Perl 數(shù)據(jù)類(lèi)型

Perl 是一種弱類(lèi)型語(yǔ)言,所以變量不需要指定類(lèi)型,Perl 解釋器會(huì)根據(jù)上下文自動(dòng)選擇匹配類(lèi)型。

Perl 有三個(gè)基本的數(shù)據(jù)類(lèi)型:標(biāo)量、數(shù)組、哈希。以下是這三種數(shù)據(jù)類(lèi)型的說(shuō)明:

w3cschool

數(shù)字字面量

一、整型

PERL實(shí)際上把整數(shù)存在你的計(jì)算機(jī)中的浮點(diǎn)寄存器中,所以實(shí)際上被當(dāng)作浮點(diǎn)數(shù)看待。

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

整型變量及運(yùn)算:

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

8進(jìn)制和16進(jìn)制數(shù):8進(jìn)制以0開(kāi)始,16進(jìn)制以0x開(kāi)始。例如:

$var1 = 047;    # 等于十進(jìn)制的39
$var2 = 0x1f;   # 等于十進(jìn)制的31

二、浮點(diǎn)數(shù)

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

浮點(diǎn)寄存器通常不能精確地存貯浮點(diǎn)數(shù),從而產(chǎn)生誤差,在運(yùn)算和比較中要特別注意。指數(shù)的范圍通常為-309到+308。 例如:

#!/usr/bin/perl 

$value = 9.01e+21 + 0.01 - 9.01e+21;
print ("第一個(gè)值為:", $value, "\n");
$value = 9.01e+21 - 9.01e+21 + 0.01;
print ("第二個(gè)值為:", $value, "\n");

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

第一個(gè)值為:0
第二個(gè)值為:0.01

三、字符串

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

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

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

#!/usr/bin/perl 

$var='這是一個(gè)使用

多行字符串文本

的例子';

print($var);

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

這是一個(gè)使用

多行字符串文本

的例子

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

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

實(shí)例

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

#!/usr/bin/perl

# 換行 \n 位于雙引號(hào)內(nèi),有效
$str = "W3Cschool教程  \neska-fuses.cn";
print "$str\n";

# 換行 \n 位于單引號(hào)內(nèi),無(wú)效
$str = 'W3Cschool教程  \neska-fuses.cn';
print "$str\n";

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

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

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

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

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

1470826982419350