[精讚] [會員登入]
5886

[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 的特殊變數:$` $' $#陣列 $1 $2 .. $10 \1 \2 .. \10 介紹Perl 的 $` $' $#array $1..$10 \1..\10這些變數

[PERL] 09-迴圈 perl的迴圈

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

Perl 計算經過的時間 Perl 計算程式執行經過的時間

[PERL] split 寫法 Perl 將字串分開可以用 split 這個函數,此函數可以用Regex作分隔判斷

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

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

「許功蓋」的字以及源由 有玩過電腦一段時間的人,都聽過這個人(有一天我才發現7年級的竟然都不認識這個

在Centos7 下安裝 Wildfly10 wildfly以前叫JBoss,2014.11.20改名叫Wildfly,起始版本是Wildfly8,現在已經出到Wil

讓radio box 或checkbox 好按 在行動裝置下,radio box及checkbox變得很難按得到

[Mysql/MariaDB] 查看資料庫所占空間 查看資料庫在磁碟中所占空間