[精讚] [會員登入]
6481

[PERL] 02-註解、變數和常數

perl的註解、變數和常數

分享此文連結 //n.sfs.tw/11654

分享連結 [PERL] 02-註解、變數和常數@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2022-01-11 17:02:29 最後編修
2017-08-19 13:02:02 By 張○○
 

自動目錄

註解

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 book
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

END

你可能感興趣的文章

[PERL] 簡易檢查網頁記錄檔ip來源統計 利用PERL來檢查網頁記錄檔ip來源統計的簡易程式

[PERL] 16-字串取代和置換 Perl 字串比對及置換

關於Perl,你得知道這幾點 Perl 有不少奇異的地方,值得看一看

[PERL] 19-模組的安裝和維護 模組的安裝和維護

[PERL] 常態分配亂數產生函數 一般而言我們使用程式內建的 rand 函數取得的亂數是平均分配的,但如果需要常態分配的亂數產生器該怎麼做?

[PERL] 07-陣列 #1 -- 基本 perl的陣列

隨機好文

維修冰箱 維修冰箱

NETCRAFT發現你的網站及作業系統 NETCRAFT可以發現你的網站及作業系統

維修海棉拖把頭 這類型的海棉拖把很好用,可是這近發現海棉頭越來越不耐用,也許是錯覺,以往都能用個三四個月,現在二個月就差不多掉下來。 這

[CKeditor4] 設定區塊樣式、段落格式、字型名稱及字型大小 CKeditor4中要自訂設定區塊樣式、段落格式、字型名稱及字型大小。

[HTML5] script 的新增屬性 defer, async script 的新增屬性 defer, async