天天看點

Perl 基礎文法

Perl借用了C、sed、awk、shell腳本以及很多其他程式設計語言的特性,文法與這些語言有些類似,也有自己的特點。

Perl 程式有聲明與語句組成,程式自上而下執行,包含了循環,條件控制,每個語句以分号 (;) 結束。

Perl 語言沒有嚴格的格式規範,你可以根據自己喜歡的風格來縮進。

你可以在指令行中使用 <b>-e</b> 選項來輸入語句來執行代碼,執行個體如下:

輸入以上指令,回車後,輸出結果為:

我們将以下代碼放到 <b>hello.pl</b> 檔案中:

#!/usr/bin/perl

# 輸出 "Hello, World"

print "Hello, world\n";

代碼中 <b>/usr/bin/perl</b> 是 perl 解釋器的路徑。在執行該腳本前要先確定檔案有可執行權限,我們可以先将檔案權限修改為 0755 :

print 也可以使用括号來輸出字元串,以下兩個語句輸出相同的結果:

perl 代碼可以寫在一個文本檔案中,以 .pl、.PL 作為字尾。

檔案名可以包含數字,符号和字母,但不能包含空格,可以使用下劃線(_)來替代空格。

一個簡單的Perl 檔案名:

使用注釋使你的程式易讀,這是好的程式設計習慣。

perl 注釋的方法為在語句的開頭用字元#,如:

perl 也支援多行注釋,最常用的方法是使用 POD(Plain Old Documentations) 來進行多行注釋。方法如下:

# 這是一個單行注釋

=pod 注釋

這是一個多行注釋

=cut

執行以上程式,輸出結果為:

<b>注意:</b> =pod、 =cut隻能在行首。 以=開頭,以=cut結尾。 =後面要緊接一個字元,=cut後面可以不用。

Perl 解釋器不會關心有多少個空白,以下程式也能正常運作:

print "Hello, world\n";

但是如果空格和分行出現在字元串内,他會原樣輸出:

# 會輸出分行

print "Hello

world\n";

所有類型的空白如:空格,tab ,空行等如果在引号外解釋器會忽略它,如果在引号内會原樣輸出。

perl 輸出字元串可以使用單引号和雙引号,如下所示:

print "Hello, world\n"; # 雙引号

print 'Hello, world\n'; # 單引号

輸出結果如下:

從結果中我們可以看出,雙引号 \n 輸出了換行,而單引号沒有。

Perl雙引号和單引号的差別: 雙引号可以正常解析一些轉義字元與變量,而單引号無法解析會原樣輸出。

$a = 10;

print "a = $a\n";

print 'a = $a\n';

Here文檔又稱作heredoc、hereis、here-字串或here-腳本,是一種在指令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程式語言(像Perl、PHP、Python和Ruby)裡定義一個字串的方法。

使用概述:

1.必須後接分号,否則編譯通不過。

2.END可以用任意其它字元代替,隻需保證結束辨別與開始辨別一緻。

3.結束辨別必須頂格獨自占一行(即必須從行首開始,前後不能銜接任何空白和字元)。

4.開始辨別可以不帶引号号或帶單雙引号,不帶引号與帶雙引号效果一緻,解釋内嵌的變量和轉義符号,帶單引号則不解釋内嵌的變量和轉義符号。

5.當内容需要内嵌引号(單引号或雙引号)時,不需要加轉義符,本身對單雙引号轉義,此處相當與q和qq的用法。

$var = &lt;&lt;"EOF";

這是一個 Here 文檔執行個體,使用雙引号。

可以在這輸如字元串和變量。

例如:a = $a

EOF

print "$var\n";

$var = &lt;&lt;'EOF';

這是一個 Here 文檔執行個體,使用單引号。

執行以上程式輸出結果為:

如果我們需要輸出一個特殊的字元,可以使用反斜線(\)來轉義,例如輸出美元符号($):

$result = "菜鳥教程 \"runoob\"";

print "$result\n";

print "\$result\n";

Perl 基礎文法

Perl 辨別符是使用者程式設計時使用的名字,在程式中使用的變量名,常量名,函數名,語句塊名等統稱為辨別符。

辨別符組成單元:英文字母(a~z,A~Z),數字(0~9)和下劃線(_)。

辨別符由英文字母或下劃線開頭。

辨別符區分大小寫,$runoob 與 $Runoob 表示兩個不同變量。