本站電子書

您可以在這些電子書店找到本站電子書: Google Play 圖書iBooks StoreHyReadReadmooPubu
===>>>本站推出學習遊戲意見調查<<<===《如何自學程式設計》入選 Google Play 台灣地區2016年度最佳書籍

Perl 入門指南 - 變數型態

Perl 有三種變數型態 (variable type) ,分別是純量變數 (scalar variable) 、陣列變數 (array variable) 及雜湊變數 (hash variable)




純量變數以 $ 符號開始,其值可以是整數 (integer) 、帶小數點的浮點數 (floating-point number) 或字串 (string)
$n1 = 25;                        # 25
$n2 = 2.5;                       # 2.5
$s1 = "There are $n1 dollars.\n" # 雙引號字串
$s2 = 'There is no spoon.';      # 單引號字串


雙引號字串裡頭可以用變數及跳脫序列 (escape sequence) ,跳脫序列就是一些不可見字元,由斜線 \ 開始,然後接一些特定的英文字元,常見的有
跳脫序列的字元說明
\a響鈴
\b倒退鍵
\f跳頁
\n印出新列
\r歸位符號
\ttab 鍵
\v垂直定位符號
\\印出反斜線
\?印出問號
\'印出單引號
\"印出雙引號


陣列變數以 @ 符號開始,其字面常數為用小括弧圍起來的資料,若使用 .. 運算子就表示某一範圍的數值,例如
@array = (1, 2.0, 'spoon'); # 三個元素的陣列
@10 = (1 .. 10);            # 從 1 到 10 的陣列
@alph = ("a" .. "z");       # 小寫英文字母表陣列
@days = qw/Monday
Tuesday
Wednesday
Thursday
Firday
Saturday
Sunday/;                    # 星期一到星期天的英文單字陣列


上面的 @days 用了另一種運算子 qw// ,這會將斜線範圍的文字以空白字元拆開成字串,形成字串陣列 (array) ,因此這會等於
# 星期一到星期天的英文單字陣列
@days2 = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Firday', 'Saturday', 'Sunday');


存取陣列元素可用中括弧加索引值,索引值由 0 開始依序遞增,例如
@array = (1, 2.0, 'spoon'); 
print $array[0]; # 印出 1
print $array[1]; # 印出 2
print $array[2]; # 印出 spoon


雜湊變數則是一種 key-value 配對的資料型態,例如
%ages = ('Tony' => 28,
         'John' => 35,
         'Mary' => 29);


'Tony' 、 'John' 、 'Mary' 為 key , 28 、 35 、 29 各是所屬的 value ,存取元素則利用中括弧加 key 值
print $ages{'Tony'}; # 印出 28
print $ages{'John'}; # 印出 35
print $ages{'Mary'}; # 印出 29


Perl 利用 $ 、 @ 、 % 三個前綴區分變數型態種類,不過變數命名還是有社群沿襲的習慣,接下來我們繼續來看看命名規則吧!


中英文術語對照
變數型態variable type
純量變數scalar variable
陣列變數array variable
雜湊變數hash variable
整數integer
浮點數floating-point number
字串string
跳脫序列escape sequence
陣列array


您可以繼續參考
基礎篇


相關目錄
回 Perl 入門指南
回 Perl 教材
回首頁


參考資料
http://perldoc.perl.org/perlrun.html
http://www.tutorialspoint.com/perl/perl_variables.htm
http://www.tutorialspoint.com/perl/perl_scalars.htm
http://www.tutorialspoint.com/perl/perl_arrays.htm
http://www.tutorialspoint.com/perl/perl_hashes.htm

沒有留言: