Perl 資料型別


Perl 是一種弱型別語言,所以變數不需要指定類型,Perl 解譯器會根據上下文自動選擇符合類型。

Perl 有三個基本的資料型態:標量、陣列、雜湊。以下是這三種資料類型的說明:

##123
#序號#類型和描述
1

標量標量是Perl語言中最簡單的一種資料型別。這種資料類型的變數可以是數字,字串,浮點數,不作嚴格的區分。使用時在變數的名字前面加上一個"$",表示是標量。例如:
$myfirst=123;     #数字123 

$mysecond="123";   #字符串123 

陣列陣列變數以字元"@"開頭,索引從0開始,如:@arr=(1,2,3)
@arr=(1,2,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#\b#\f換頁符號\n換行\r回車\t水平製表符 #垂直製表符建立八進位格式的數字建立十六進位格式的數字控製字符,x可以是任何字元強制下一個字元為大寫#強制下一個字元為小寫強制將所有字元轉換為大寫強制將所有的字元轉換為小寫將到\E為止的非單字(non-word)字元加上反斜線
轉義字元意思
##\v
\0nn
\xnn
\cX
\u
\l
\U
\L
\Q

\E

結束\L、\U、\Q

實例
####接下來讓我們來具體看看單引號和雙引號及轉義字元的使用:###
#!/usr/bin/perl

# 换行 \n 位于双引号内,有效
$str = "php中文网  \nwww.php.cn";
print "$str\n";

# 换行 \n 位于单引号内,无效
$str = 'php中文网  \nwww.php.cn';
print "$str\n";

# 只有 R 会转换为大写
$str = "\uphp";
print "$str\n";

# 所有的字母都会转换为大写
$str = "\Uphp";
print "$str\n";

# 指定部分会转换为大写
$str = "Welcome to \Uphp\E.com!"; 
print "$str\n";

# 将到\E为止的非单词(non-word)字符加上反斜线
$str = "\QWelcome to php's family";
print "$str\n";
###以上實例執行輸出結果為:################