Perl自學(03) 基本資料型別

2021-10-08 05:19:40 字數 4135 閱讀 6860

之前了解到perl 是解釋型語言,因此會根據上下文自動選擇匹配型別。

所以,perl 是一種弱型別語言;強型別語言就是c++一樣不指定型別會報錯。

在perl 有三個基本的資料型別:標量、陣列、雜湊。

標量是 perl 語言中最簡單的一種資料型別。

這種資料型別的變數可以是數字,字串,浮點數,不作嚴格的區分,統稱為標量。在使用時在變數的名字前面加上乙個 $(美元符號),表示是標量。

變數不需要顯式宣告型別,在變數賦值後,直譯器會自動分配匹配的型別空間。

變數使用等號(=)來賦值。

#!/usr/bin/perl

$a = 1.51;

$b = 1;

$c = "size";

$d = 'q';

print qq($a\n);

print qq($b\n);

print qq($c\n);

print qq($d\n);

#結果:1.51 1 size q

並且對於變數:該部分參

#!/usr/bin/perl

# (1)區分大小寫

$var='lower';

$var='upcase';

print $var."\n";

# (2)變數的長度不限制

$this_is_a_long_legalname="long var";

print "var is $this_is_a_long_legalname\n";

# (3)if是關鍵字,沒有衝突!

$if="key";

print "key bar id $if\n"

當然對於 perl 的變數也會有特殊的變數: perl的特殊變數

perl 實際上把整數存在你的計算機中的浮點暫存器中,所以實際上被當作浮點數看待。

在多數計算機中,浮點暫存器可以存貯約 16 位數字,長於此的被丟棄。整數實為浮點數的特例。

123         正數

0 零

-12 負數

12e2 科學計數方法(1200)

61_123_234 分割整數(不知道是多少位,用下劃線_表示分割,其它語言用.號分割,perl"."號有特殊的含

義),處理會去除下劃線!

012 說明:整數以0開頭預設是8進製(octal)-->表示十進位制10

0x1f 說明:以0x開頭預設是16進製制,f不區分大小寫!

浮點數資料如: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);

結果:使用單引號的

多行字串文字

的例子

總結起來:(本部分參考部落格)下面這個例子就是變數內插的示例:

#!/usr/bin/perl

$str="short";

$string="long";

print "match longest $string\n";

print "match longest $ing\n";

輸出結果:

match longest long

match longest shorting

\\

反斜線\'

單引號\"

雙引號\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.runoob.com";

print "$str\n";

# 換行 \n 位於單引號內,無效

$str = '菜鳥教程 \nwww.runoob.com';

print "$str\n";

# 只有 r 會轉換為大寫

$str = "\urunoob";

print "$str\n";

# 所有的字母都會轉換為大寫

$str = "\urunoob";

print "$str\n";

# 指定部分會轉換為大寫

$str = "welcome to \urunoob\e.com!";

print "$str\n";

# 將到\e為止的非單詞(non-word)字元加上反斜線

$str = "\qwelcome to runoob's family";

print "$str\n";

輸出結果:

其他小示例:(參考部落格)

# (1)相鈴

print "bell ring:\a\n";

# (2)退乙個字元-->backspace

print "back#\bspace\n";

# (3)回車-->跳到當行的開頭-->abcy

print "copy\rabc\n";

# (4)值表符-->一般是四個空格

print "abc\tdef\n";

# (5)轉義-->取消字元的含義

print "the \$var\n";

print "a quote \" in string\n";

print "a quote \\ in string\n";

# (6)\nnn表示8進製的ascii碼,\xnn表示16進製制的ascii碼

print "\045\n";

bell ring:

backspace

abcy

abc def

the $var

a quote " in string

a quote \ in string

%%

還有就是用 q 和 qq兩個操作符進行操作。 還有就是反引號,請參考這個部落格:perl的反引號

03 基本資料型別

cv mat,可以表示任意維度的矩陣,大陣列表示 cv vec vector模板,常用別名 cv vec,以上組合都是有效的 繼承自cv matx cv matx 區別於mat,用於處理特定的小矩陣,固定大小的矩陣別名 cv matx 點類,cv point2i,cv point2f,and cv ...

03 基本資料型別

2.識別符號 3.基本資料型別 4 字串 5 變數 表示式,是由數字 算符 數字分組符號 括號 自由變數和約束變數等以能求得數值的有意義排列方法所得的組合 表示式特點 表示式一般僅僅用於計算一些結果,不會對程式產生實質性的影響。如果在互動模式中輸入乙個表示式,直譯器會自動將表示式的結果輸出 乙個語法...

03 基本資料型別

1.2 語句 1.3 程式 program 1.4 函式 function 函式的2個要素 2 識別符號 2.2 識別符號概念 2.3 命名的方式 下劃線命名法 3 基本資料型別 3.2 布林值和空值 none 空 表示不存在 4 變數 注意 是兩個物件相等和兩個物件是同乙個物件是兩個概念 4.2 ...