Perl 基礎語法
Perl借用了C、sed、awk、shell腳本以及很多其他編程語言的特性,語法與這些語言有些類似,也有自己的特點。
Perl 程序有聲明與語句組成,程序自上而下執(zhí)行,包含了循環(huán),條件控制,每個語句以分號 (;) 結束。
Perl 語言沒有嚴格的格式規(guī)范,你可以根據(jù)自己喜歡的風格來縮進。
第一個 perl 程序
交互式編程
你可以在命令行中使用 -e 選項來輸入語句來執(zhí)行代碼,實例如下:
$ perl -e 'print "Hello World\n"'
輸入以上命令,回車后,輸出結果為:
Hello World
腳本式編程
我們將以下代碼放到 hello.pl 文件中:
#!/usr/bin/perl # 輸出 "Hello, World" print "Hello, world\n";
代碼中 /usr/bin/perl 是 perl 解釋器的路徑。在執(zhí)行該腳本前要先確保文件有可執(zhí)行權限,我們可以先將文件權限修改為 0755 :
$ chmod 0755 hello.pl $ ./hello.pl Hello, world # 輸出結果
print 也可以使用括號來輸出字符串,以下兩個語句輸出相同的結果:
print("Hello, world\n"); print "Hello, world\n";
腳本文件
perl 代碼可以寫在一個文本文件中,以 .pl、.PL 作為后綴。
文件名可以包含數(shù)字,符號和字母,但不能包含空格,可以使用下劃線(_)來替代空格。
一個簡單的Perl 文件名:
w3c_school.pl
注釋
使用注釋使你的程序易讀,這是好的編程習慣。
perl 注釋的方法為在語句的開頭用字符#,如:
# 這一行是 perl 中的注釋
perl 也支持多行注釋,最常用的方法是使用 POD(Plain Old Documentations) 來進行多行注釋。方法如下:
#!/usr/bin/perl # 這是一個單行注釋 print "Hello, world\n"; =pdo 注釋 這是一個多行注釋 這是一個多行注釋 這是一個多行注釋 這是一個多行注釋 =cut
執(zhí)行以上程序,輸出結果為:
Hello, world
注意:
- =pod、 =cut只能在行首。
- 以=開頭,以=cut結尾。
- =后面要緊接一個字符,=cut后面可以不用。
Perl 中的空白
Perl 解釋器不會關心有多少個空白,以下程序也能正常運行:
#!/usr/bin/perl print "Hello, world\n";
執(zhí)行以上程序,輸出結果為:
Hello, world
但是如果空格和分行出現(xiàn)在字符串內(nèi),他會原樣輸出:
#!/usr/bin/perl # 會輸出分行 print "Hello world\n";
執(zhí)行以上程序,輸出結果為:
Hello world
所有類型的空白如:空格,tab ,空行等如果在引號外解釋器會忽略它,如果在引號內(nèi)會原樣輸出。
單引號和雙引號
perl 輸出字符串可以使用單引號和雙引號,如下所示:
#!/usr/bin/perl print "Hello, world\n"; # 雙引號 print 'Hello, world\n'; # 單引號
輸出結果如下:
Hello, world Hello, world\n
從結果中我們可以看出,雙引號 \n 輸出了換行,而單引號沒有。
Perl雙引號和單引號的區(qū)別: 雙引號可以正常解析一些轉義字符與變量,而單引號無法解析會原樣輸出。
#!/usr/bin/perl $a = 10; print "a = $a\n"; print 'a = $a\n';
輸出結果如下:
a = 10 a = $a\n
Here 文檔
Here文檔又稱作heredoc、hereis、here-字串或here-腳本,是一種在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序語言(像Perl、PHP、Python和Ruby)里定義一個字串的方法。
使用概述:
- 1.必須后接分號,否則編譯通不過。
- 2.END可以用任意其它字符代替,只需保證結束標識與開始標識一致。
- 3.結束標識必須頂格獨自占一行(即必須從行首開始,前后不能銜接任何空白和字符)。
- 4.開始標識可以不帶引號號或帶單雙引號,不帶引號與帶雙引號效果一致,解釋內(nèi)嵌的變量和轉義符號,帶單引號則不解釋內(nèi)嵌的變量和轉義符號。
- 5.當內(nèi)容需要內(nèi)嵌引號(單引號或雙引號)時,不需要加轉義符,本身對單雙引號轉義,此處相當與q和qq的用法。
#!/usr/bin/perl $a = 10; $var = <<"EOF"; 這是一個 Here 文檔實例,使用雙引號。 可以在這輸如字符串和變量。 例如:a = $a EOF print "$var\n"; $var = <<'EOF'; 這是一個 Here 文檔實例,使用單引號。 例如:a = $a EOF print "$var\n";
執(zhí)行以上程序輸出結果為:
這是一個 Here 文檔實例,使用雙引號。 可以在這輸如字符串和變量。 例如:a = 10 這是一個 Here 文檔實例,使用單引號。 例如:a = $a
轉義字符
如果我們需要輸出一個特殊的字符,可以使用反斜線(\)來轉義,例如輸出美元符號($):
#!/usr/bin/perl $result = "W3Cschool教程 \"w3cschool\""; print "$result\n"; print "\$result\n";
執(zhí)行以上程序輸出結果為:
Perl 標識符
Perl 標識符是用戶編程時使用的名字,在程序中使用的變量名,常量名,函數(shù)名,語句塊名等統(tǒng)稱為標識符。
- 標識符組成單元:英文字母(a~z,A~Z),數(shù)字(0~9)和下劃線(_)。
- 標識符由英文字母或下劃線開頭。
- 標識符區(qū)分大小寫,$w3cschool 與 $W3cschool 表示兩個不同變量。
更多建議: