變數(Scalar)
變數,你可以想像是一個存放空間,可以存放數字、文字、甚至特殊符號。
Perl跟其他語言不一樣,不用特地宣告說,這個新變數是什麼類型,
有的程式語言,你要先宣告說,這個變數存的是數字,還是其他類型。
所以Perl的變數用法上很簡單,但是自己要知道變數存的是什麼,這樣才不會出錯。
Perl敘述用錢字符號($)表示變數,後面要賦予這個變數的名稱,並且要以英文開頭,
可以再給予英文以及數字,像是$a、$a11、$aaa1,
要注意,大寫、小寫視為不同變數,別搞混了!
直接看例子吧!底下是程式碼:
$a = 0;
$b = 1;
print $a+$b;
執行結果就會是 1
很直覺吧!不過有個地方要注意,這是非資訊背景的人,
常常會搞不懂的地方,上面程式碼中的等號(=),要當作取代(或是覆蓋),
所以程式碼的解讀要從右邊,解釋到左邊,
$b = 1; 這個敘述句,用「數字1把變數$b給取代」這樣的方式解讀,
這樣才不會陷入數學的邏輯裡面。
一樣,我們舉個例子:
$a = 0; # 從右邊解讀回來,變數$a被0取代(覆蓋),所以現在$a裡面的值是0
$a = $a+1; # 從右邊解讀回來,經上式,$a+1其實就是0+1,所以右式會是1
# 接著,右式的1,把左邊的$a取代(覆蓋),所以現在$a裡面的值是1
$a = $a+1; # 原理同上,所以現在$a裡面的值是2
print $a; # 印出 $a到螢幕上
執行結果就會是 2
上面的例子是數字部分,接下來談談字串部分,
Perl可以使用單引號(')或雙引號(")來表示字串,但是使用上略有不同。
一樣,我們直接看例子:
$a = "這個變數是\t字串"; # 這裡使用雙引號
$b = '這個變數是\t字串'; # 這裡使用單引號
print "$a\n"; # 印出$a以及換行一次
print "$b\n"; # 印出$b以及換行一次
看出差異了吧,單引號會無法使用像是\n(換行字元)和\t(跳格字元)這些特殊字元,
因此在單引號中,這些字元都會被當作文字,而完整的呈現。
其他特殊字元還有:
\a 會發出嗶一聲的警示聲
\e 跳脫符號(escape)
\f 換頁
\n 換行
\s 空白字元
\t 跳格字元 (Tab)
其他的就自行搜尋囉!
Perl的變數不用宣告類別,但是會有個問題,
如果變數裡都是數字,但是我只想做字串處理怎麼辦?
只要記得,數字跟字串各有各的運算方式,
像是數字用加號(+)做計算,字串用點(.)做連接,
我們直接看例子:
$a = 0;
$b = 1;
print $a+$b; # 當作數字運算
執行結果會是 1
而換成字串的話,
$a = 0;
$b = 1;
print $a.$b; # 當作字串來處理
執行結果會是 01
透過這樣的方式,可以讓變數依照你的需要,當作數字或是字串來處理。
既然講到了運算,那就要提一下Perl的運算式,
Perl的運算跟日常生活的一樣,
一樣會進行先乘除、後加減的動作。(即是先處理乘號、除號,再處理加減)
不過,不同的是,
Perl的運算裡,沒有數學裡的中括號、大括號(有別的用途),
所以,跟工程數學計算機的操作很類似,都是用小括號把想先行計算的部分括起來,
除了這些簡單的數學運算符號以外,
還有一些比較特別的,而你可能必須要記下來的符號,像是:
++ -- 分別代表 遞增、遞減 (因此 $a++相當於 $a=$a+1)
% 求餘數
&& AND邏輯;即是"並且"的意思 (兩條件都要成立)
|| OR邏輯;即是"或"的意思 (任一條件成立即可)
更多的符號我們以後用到時,阿逸會再做解釋。
沒有留言:
張貼留言