之前了解到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 ...