[精讚] [會員登入]
6073

[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] 22-日期和時間 Perl 取得日期時間的方法整理,使用 localtime等多種函數

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

[PERL] 03-條件式判斷 perl的條件式判斷

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

Perl 的特殊變數:$` $' $#陣列 $1 $2 .. $10 \1 \2 .. \10 介紹Perl 的 $` $' $#array $1..$10 \1..\10這些變數

[PERL] 09-迴圈 perl的迴圈

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

[MAC] 截取螢幕畫面的方法 截取螢幕畫面的方法,在MAC中叫作螢幕快照,英文是screenshot

[jQuery] textarea 的取值和給值 HTML 的 TEXTAREA 標籤若要用 jquery 取值,不能使用 .text() 或 .html() ,使用 .

[Windows7] 移除IE10及移除IE11 Windows7 不得已的情況要移除IE11或IE10怎麼做?

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

好用的3+2碼郵遞區號查詢系統推薦 網路上找到用地址輸入判斷3+2碼郵遞區號的辨識率不高,除了這個網站…