Perl 是 Practical Extraction and Report Language 的縮寫,可翻譯為 “實(shí)用報(bào)表提取語言”。 Perl 是高階、通用、直譯式、動態(tài)的程式語言。 Perl 最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),於1987年12月18日發(fā)表。 Perl 借用了C、sed、awk、shell腳本以及許多其他程式語言的特性。 Perl 最重要的特性是Perl內(nèi)部整合了正規(guī)..
Perl是高階、通用、解釋型、動態(tài)的程式語言家族。最初設(shè)計(jì)者拉里·沃爾為了讓在UNIX上進(jìn)行報(bào)表處理的工作變得更方便,決定開發(fā)一個通用的腳本語言,而在1987年12月18日發(fā)表。目前,Perl語言家族包含兩個分支Perl 5以及Perl 6(開發(fā)中)。雖然Perl不是正式的首字母縮略詞,但仍有各種各樣的逆向首字母縮略詞,包括「實(shí)用的提取和報(bào)告語言」。
Perl借用了C、sed、awk、shell腳本以及許多其他程式語言的特性。其中最重要的功能是Perl內(nèi)部整合了正規(guī)表示式的功能,以及龐大的第三方程式碼庫CPAN。
2000年開始,目前拉里·沃爾開始開發(fā)Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉(zhuǎn)變,所以Perl 6被視為Perl家族中的另一個語言。
Perl語言的應(yīng)用範(fàn)圍很廣,除CGI以外,Perl被用於圖形程式設(shè)計(jì)、系統(tǒng)管理、網(wǎng)路程式設(shè)計(jì)、金融、生物以及其他領(lǐng)域。由於其靈活性,Perl被稱為腳本語言中的瑞士軍刀。
下面讓我們感受下第一個Perl程式吧!
Perl的Hello World程式
下面是一個在標(biāo)準(zhǔn)輸出裝置上輸出Hello World的簡單程序,這種程式通常作為開始學(xué)習(xí)程式語言的第一個範(fàn)例:
實(shí)例
#!/usr/bin/env perl print "Hello, world!\n";
#執(zhí)行實(shí)例?
#點(diǎn)擊"運(yùn)行實(shí)例" 按鈕查看線上實(shí)例
如果有perl 5.10以上的版本,也可以這樣:
實(shí)例
#!/usr/bin/env perl use 5.010; say "Hello, world!";
運(yùn)行實(shí)例?##點(diǎn)擊」執(zhí)行實(shí)例" 按鈕查看線上實(shí)例
這個程式將輸出一行字串:“Hello, world!”,以及一個換行。
提示:我們的perl教學(xué)將幫助您學(xué)習(xí)從初級到高級的perl知識。如果你有任何疑問,請前往PHP中文網(wǎng)perl社群提出你的問題,會有熱心網(wǎng)友為你解答。
Perl優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
#為了實(shí)現(xiàn)這樣的目標(biāo),並且又因?yàn)長arry Wall本人也是一個語言學(xué)家,他設(shè)計(jì)Perl語言時使用了很多語言學(xué)的思維。相較於C、Pascal這樣的「高階」語言而言,Perl語言直接提供泛型變數(shù)、動態(tài)陣列、Hash表等更便捷的程式設(shè)計(jì)元素。 Perl具有動態(tài)語言的強(qiáng)大靈活的特性,並且還從C/C 、Basic、Pascal等語言中分別借鑒了語法規(guī)則,從而提供了許多冗餘語法。
使得程式設(shè)計(jì)師可以忽略電腦內(nèi)部資料儲存、型別、處理方法、運(yùn)算規(guī)則、甚至記憶體越界等等的細(xì)節(jié),而將思考中心放在所需的程式邏輯上。就這一點(diǎn)而言,許多Perl程式設(shè)計(jì)師認(rèn)為目前只有Perl、Python等泛型語言才能稱為「高階」語言,而C、Pascal甚至C 這些只能稱為「中高階」語言而已??梢哉f,在統(tǒng)一變數(shù)類型和掩蓋運(yùn)算細(xì)節(jié)方面,Perl做得比Python更出色。
由於從其他語言大量借鑒了語法,使得從其他程式語言轉(zhuǎn)到Perl語言的程式設(shè)計(jì)師可以迅速上手寫程式並完成任務(wù),這使得Perl語言是一門容易用的語言。
缺點(diǎn)
也正是因?yàn)镻erl的彈性和「過度」的冗餘語法,也因此獲得了僅寫(write -only)的“美譽(yù)”,因?yàn)镻erl程式可以寫得很隨意(例如,變量不經(jīng)聲明就可以直接使用),但是可能少寫一些字母就會得到意想不到的結(jié)果(而不報(bào)錯),許多Perl程式的程式碼令人難以閱讀,實(shí)現(xiàn)相同功能的程式碼長度可以相差十倍百倍,這就令程式的維護(hù)者(甚至是編寫者)難以維護(hù)。
同樣的,因?yàn)镻erl這樣隨意的特點(diǎn),可能會導(dǎo)致一些Perl程式設(shè)計(jì)師遺忘語法,以至於不得不經(jīng)常查看Perl手冊。對此,《Learning Perl》一書裡建議經(jīng)常使用Perl程式設(shè)計(jì)。
建議的解決方法是在程式裡使用use strict;以及use warnings;,並統(tǒng)一程式碼風(fēng)格,使用函式庫,而不是自己使用「硬編碼」。 Perl同樣可以將程式碼書寫得像Python或Ruby等語言一樣優(yōu)雅。
本Perl教程手冊涵蓋的內(nèi)容
本Perl教程涵蓋所有Perl基礎(chǔ)和高級知識,包含了Perl語法、Perl資料類型、Perl變數(shù)、Perl標(biāo)量、Perl數(shù)組、Perl哈希、Perl運(yùn)算子、Perl函數(shù)、Perl物件導(dǎo)向、Perl進(jìn)程管理等等。
提示:本教學(xué)的每一章都包含了許多Perl實(shí)例,您可以直接點(diǎn)擊?"運(yùn)行實(shí)例"?按鈕在線查看結(jié)果。這些例子將幫助您更好地理解和運(yùn)用Perl。
最新章節(jié)
- Perl POD 文檔 2016-10-17
- Perl 進(jìn)程管理 2016-10-17
- Perl 包和模塊 2016-10-17
- Perl CGI編程 2016-10-17
- Perl 數(shù)據(jù)庫連接 2016-10-17
- Perl Socket 編程 2016-10-17
- Perl 發(fā)送郵件 2016-10-17
相關(guān)課程
- 最新ThinkPHP 5.1全球首發(fā)影片教學(xué)(60天成就PHP大牛線上訓(xùn)練課程) 2022-02-17
- 簡單聊聊PHP創(chuàng)業(yè)那點(diǎn)事 2023-01-04
- 大型實(shí)戰(zhàn)天龍八部之開發(fā)Mini版MVC架構(gòu)仿糗事百科網(wǎng)站 2018-01-25
- 登入驗(yàn)證與經(jīng)典留言板 2018-03-02
- PHP實(shí)戰(zhàn)開發(fā)極速入門: PHP快速創(chuàng)建[小型商業(yè)論壇] 2022-06-28
- 快速入門Node.JS全套完整版 2022-09-30
- 自己動手寫 PHP MVC 框架(40節(jié)精講/鉅細(xì)/新人進(jìn)階必看) 2022-12-08
- 馬士兵spring影片教學(xué) 2022-04-12
-
知識拓展
-
教學(xué)導(dǎo)航