[精讚] [會員登入]
6223

[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] 04-基本比對 perl的正規表達示基本比對

[PERL] 自寫 trim, ltrim, rtrim 函數 常用的 perl 函數中沒有trim, ltrim, rtrim這三個函數,那就自己來寫,非常容易

[PERL] 13- 變數的視界 變數的使用範圍,什麼是my,什麼是our?

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

[PERL] 中文字字串拆解,把中文字串逐字拆開 中文字字串拆解是門學問

自行撰寫syslog server建立資訊安全控管中心#2 -- 架構和作法 利用PERL將syslog收攏到資料庫的程式,架構和作法

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

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

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper

正則表達式:Email名稱防止連續輸入點(.)及下底線(_) Email的名稱中要允許特殊符號,但又不允許連續出現的正則表達式