[精讚] [會員登入]
6165

[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] 中文字字串拆解,把中文字串逐字拆開 中文字字串拆解是門學問

Perl的類別物件利器 bless 使用bless來替perl建立class物件。

[PERL] 可用中文取名的中文名函式和package 原來perl 也可以用中文當函式、類別、方法的名稱啊

[PERL] Perl 不立即輸出的列印緩衝區問題 解決Perl 不立即輸出而是最後一次輸出的列印緩衝區問題

[PERL] 用substr切割及置換字串 perl用substr來切割及置換字串

[PERL] 20- 檔案目錄處理 PERL寫入和讀出檔案

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

談借錢 人借錢時手心向上頭向下,人還錢時手心向下頭向上

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

[CodeIgniter3] 解決無法上傳特定檔案(.sb2)的問題 上傳時出現The filetype you are attempting to upload is not allowed,要怎麼解決?

[JAVA] JWS, JWT, JWE, JOSE是什麼? [JAVA] JWS, JWT, JWE, JOSE是什麼?非常的複雜,儘量來搞清楚..