自動目錄
註解
PERL的註解只有一種,就是以 '#' 開頭後面的部分,C-like語言常用的 '//', '/* ...*/' 在PERL裡面是不能用的。
這也是PERL麻煩的地方,如果要大範圍註解,只能每一行前面加上 '#'
變數
PERL的變數以一個錢字號開頭'$',並指定數值。例如:
$a = 1; # 整數
$b = 2.3; # 浮點數
$c = "45"; # 字串
$d = "\n"; # 換行
連續懶惰式定義
$a=$b=$c=$d=123;
清單式定義法
($d,$f,$g)=(23,'ab',[66,35,56]);
定義為空值
$a=undef;
使用 defined()來判斷是否為空值,請看03-PERL條件式判斷的if範例
PERL沒有邏輯的真假值
$c=true; # X 錯誤 Unquoted string "true" may clash with future reserved word
$d=false; # X 錯誤
字串中的變數
字串如果是用雙引號,裡面的變數會被展開,如果是單引號,就不展開,如果要妨止雙引號中的變數被展開,在變數前加一個反斜線 '\'
$sth = "book"; $a="this is a $sth\n"; $b="this is a \$sth\n"; $c='this is a $sth\n'; $d='this is a \$sth\n'; print $a,$b,$c,$d;
結果
this is a $sth
this is a $sth\nthis is a \$sth\n
單引號中的反斜線只是一般的反斜線而已,雙引號中的反斜線代表是脫逸字元。
第6行印出變數的寫法可用列舉,這是PERL的特色
字串中的變數如果接續數字或文字時會造成程式解析判斷異常,所以可用{}來包覆
$e="this is a ${sth}123\n";
HereDoc
PERL也可以寫heredoc形式
my $str = <<"DOC"; foo bar 這是字串,其中含有看不見的換行 DOC
第1行<<後面設定關閉字串是"DOC",注意後面有一個分號。
第4行是關閉字串,要注意前面不要留空白,後面也不用分號。
包裝中的變數
包裝就是package,別的語言稱之為類(class),這裡先提一下,後面會再介紹
$pkg_name::var = "pkg_name中的var變數";
$::var = "main 這個包中的var變數";
常數
常數的定義得使用 use constant,指定的符號是 '=>',例如:
use constant PI => 4 * atan2(1, 1); # 浮點數
use constant DEBUG => 0; # 整數
use constant WEEK=>['M','TU','W','TH','F','SA','ST']; # 陣列
一次定義多筆
use constant {
PI => 4 * atan2(1, 1),
WEEK=>['M','TU','W','TH','F','SA','ST'],
};
叫用
print PI; #3.14159265358979
print WEEK->[1]; #TU
PERL的常數非常多樣,可以參考官網說明[1]。
上一篇 01-撰寫第一隻PERL程式
下一篇 03-PERL條件式判斷
參考資料
[1] https://perldoc.perl.org/constant.html
[2] https://tw.perlmaven.com/boolean-values-in-perl