Perl 教程


閱讀(447.6k) 收藏 (82)

手冊(cè)簡(jiǎn)介

Perl 是高級(jí)、通用、直譯式、動(dòng)態(tài)的程序語(yǔ)言。

手冊(cè)說(shuō)明

201610261602408366

官網(wǎng):https://www.perl.org/

API文檔:https://www.perl.org/docs.html

教程:http://m.hgci.cn/perl/perl-tutorial.html

下載:https://www.perl.org/get.html

Perl是什么?

Perl,一種功能豐富的計(jì)算機(jī)程序語(yǔ)言,運(yùn)行在超過(guò)100種計(jì)算機(jī)平臺(tái)上,適用廣泛,從大型機(jī)到便攜設(shè)備,從快速原型創(chuàng)建到大規(guī)??蓴U(kuò)展開(kāi)發(fā)。

Perl最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),于1987年12月18日發(fā)表?,F(xiàn)在的版本為Perl 6,于2015年12月25日更新。Perl借取了C、sed、awk、shell 腳本語(yǔ)言以及很多其他程序語(yǔ)言的特性,其中最重要的特性是它內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。簡(jiǎn)而言之,Perl像C一樣強(qiáng)大,像awk、sed等腳本描述語(yǔ)言一樣方便,被Perl語(yǔ)言愛(ài)好者稱(chēng)之為“一種擁有各種語(yǔ)言功能的夢(mèng)幻腳本語(yǔ)言”、“Unix 中的王牌工具”。Perl 一般被稱(chēng)為“實(shí)用報(bào)表提取語(yǔ)言”(Practical Extraction and Report Language),你也可能看到“perl”,所有的字母都是小寫(xiě)的。一般,“Perl”,有大寫(xiě)的 P,是指語(yǔ)言本身,而“perl”,小寫(xiě)的 p,是指程序運(yùn)行的解釋器。中文名 實(shí)際抽取與匯報(bào)語(yǔ)言 外文名 Perl(Practical Extraction and Reporting Language) 設(shè)計(jì)者拉里·沃爾 設(shè)計(jì)時(shí)間 1987年12月18日 借取程序語(yǔ)言 C、awk、shell scripting等

引言

1987年Larry Wall發(fā)布Perl1.0以來(lái),用戶(hù)數(shù)一直急劇增加,同時(shí)越來(lái)越多的程序員與軟件開(kāi)發(fā)者(商)參與Perl的開(kāi)發(fā)。從最初被當(dāng)做一種跨平臺(tái)環(huán)境中書(shū)寫(xiě)可移植工具的高級(jí)語(yǔ)言開(kāi)始,Perl被廣泛地認(rèn)為是一種工業(yè)級(jí)的強(qiáng)大工具,可以在任何地方用來(lái)完成你的工作。perl的前身是Unix系統(tǒng)管理的一個(gè)工具,被用在無(wú)數(shù)的小任務(wù)里。后逐漸發(fā)展成為一種功能強(qiáng)大的程序設(shè)計(jì)語(yǔ)言,用作Web編程、數(shù)據(jù)庫(kù)處理、XML處理以及系統(tǒng)管理;在完成這些工作時(shí),同時(shí)仍能處理日常細(xì)小工作,這是它的設(shè)計(jì)初衷。Perl特別適合系統(tǒng)管理和Web編程。實(shí)際上已經(jīng)被用在所有Unix(包括Linux)捆綁在一起作為標(biāo)準(zhǔn)部件發(fā)布,同時(shí)也用于Microsoft Windows和幾乎所有操作系統(tǒng)。Perl的應(yīng)用非常廣泛。

基本信息

Perl 最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),他于1987年12月18日發(fā)表。Perl借取了C、sed、awk、shell 腳本語(yǔ)言以及很多其他程序語(yǔ)言的特性。其中最重要的特性是它內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。
Perl 被稱(chēng)為“實(shí)用報(bào)表提取語(yǔ)言”(Practical Extraction and Report Language)。它是術(shù)語(yǔ),而不僅僅是簡(jiǎn)寫(xiě),Perl的創(chuàng)造者,Larry Wall提出第一個(gè),但很快又?jǐn)U展到第二個(gè)。那就是為什么“Perl”沒(méi)有所有字母都大寫(xiě)。沒(méi)必要爭(zhēng)論哪一個(gè)正確,Larry 兩個(gè)都認(rèn)可。

編程語(yǔ)言

Perl是由Larry Wall設(shè)計(jì)的,并由他不斷更新和維護(hù)的編程語(yǔ)言。
Perl具有高級(jí)語(yǔ)言(如C)的強(qiáng)大能力和靈活性。事實(shí)上,你將看到,它的許多特性是從C語(yǔ)言中借用來(lái)的。
Perl與腳本語(yǔ)言一樣,Perl不需要編譯器和鏈接器來(lái)運(yùn)行代碼,你要做的只是寫(xiě)出程序并告訴Perl來(lái)運(yùn)行而已。這意味著Perl對(duì)于小的編程問(wèn)題的快速解決方案和為大型事件創(chuàng)建原型來(lái)測(cè)試潛在的解決方案是十分理想的。
Perl提供腳本語(yǔ)言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awk到Perl的翻譯器。
簡(jiǎn)而言之,Perl像C一樣強(qiáng)大,像awk、sed等腳本描述語(yǔ)言一樣方便。
特點(diǎn)編輯
Perl的解釋程序是開(kāi)放源碼的免費(fèi)軟件,使用Perl不必?fù)?dān)心費(fèi)用。Perl能在絕大多數(shù)操作系統(tǒng)運(yùn)行,可以方便地向不同操作系統(tǒng)遷移。
Perl 是一種能完成任務(wù)的語(yǔ)言。從一開(kāi)始,Perl 就設(shè)計(jì)成可以把簡(jiǎn)單工作簡(jiǎn)單化,同時(shí)又不失去處理困難問(wèn)題能力的語(yǔ)言。它可以很容易操作數(shù)字,文本,文件和目錄,計(jì)算機(jī)和網(wǎng)絡(luò),特別是程序的語(yǔ)言。這種語(yǔ)言應(yīng)該很容易運(yùn)行外部的程序并且掃描這些程序的輸出獲取感興趣的東西。而且它還應(yīng)該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當(dāng)然,這種語(yǔ)言還應(yīng)該很容易在任何現(xiàn)代的操作系統(tǒng)上可以移植地編譯和運(yùn)行。

基本語(yǔ)法

變量定義,以$號(hào)開(kāi)頭,如:$num =1;
數(shù)組定義,以@開(kāi)頭,如:@array = (1,2,3);
數(shù)組元素調(diào)用 $array[index],其中index表示數(shù)組下標(biāo),如上例,$array[0]的值是1
散列定義,以%開(kāi)頭,如:%hash=("a",1,"b",2);
散列調(diào)用 %hash,其中keys表示鍵值,多用字符串表示,注意hash的key必須具有唯一性,但value可以不唯一,為此hash的key經(jīng)常被用來(lái)做唯一化處理,如上例中的"a", "b", values是keys對(duì)應(yīng)的值,如1,2。$hash{"b"}的值是2。

優(yōu)點(diǎn)

Perl追求的是簡(jiǎn)單, 解決一個(gè)一般的問(wèn)題用它幾行代碼就完成了. 一個(gè)稍復(fù)雜一點(diǎn)的問(wèn)題代碼也不會(huì)超過(guò)一屏! 在軟件測(cè)試中,Perl通常是非常重要的角色。一般一個(gè)測(cè)試通用函數(shù)庫(kù)就要分十幾個(gè)文件,甚至更多,包含多達(dá)上千個(gè)定制功能。而這些函數(shù)將在主函數(shù)運(yùn)行時(shí),不定數(shù)量的被調(diào)用。幾乎可以說(shuō),一切自動(dòng)過(guò)程都是由Perl自己完成的,

Perl 最初是當(dāng)做一種 Unix 的腳本語(yǔ)言設(shè)計(jì)的,但是它早就移植到大多數(shù)其它操作系統(tǒng)里了。因?yàn)?Perl 幾乎可以在任何地方運(yùn)行,所以 Perl 可以說(shuō)是當(dāng)今最具有移植性的編程環(huán)境;

Perl 是“背黑鍋我來(lái)”的語(yǔ)言。如果你覺(jué)得自己陷入一團(tuán)亂麻之中,非??释杂?,那么請(qǐng)使用 Perl。
Windows 上工作的 web 設(shè)計(jì)者通常會(huì)非常開(kāi)心地發(fā)現(xiàn)他們的 Perl 程序可以不加修改地在 Unix 服務(wù)器上跑。
Perl 之所以成為 Perl 是因?yàn)樗鼜膩?lái)不會(huì)因?yàn)楸3趾?jiǎn)單事情簡(jiǎn)單化而丟失其他方面的特性。

Perl 的成功有許多原因。Perl 早在開(kāi)源軟件的名字出現(xiàn)之前就已經(jīng)是一個(gè)成功的開(kāi)源項(xiàng)目了。Perl 是自由的,并將永遠(yuǎn)自由下去。你可以在任何合適的場(chǎng)合使用 Perl,只需要遵守一個(gè)非常自由的版權(quán)就可以了。如果你在從事商業(yè)活動(dòng)并且還想使用 Perl,那么用就是了。你可以把 Perl 嵌入到你寫(xiě)的商業(yè)軟件中而不需要支付任何費(fèi)用也沒(méi)有任何限制。

Perl 是自由軟件,Perl 不僅自由;而且好玩。人們覺(jué)得自己在 Perl 里可以有創(chuàng)造力,因?yàn)樗鼈冇斜磉_(dá)的自由:他們可以選擇是為計(jì)算機(jī)速度優(yōu)化還是為程序員的速度優(yōu)化,是冗長(zhǎng)還是簡(jiǎn)潔,是選擇可讀性還是可維護(hù)性,或者選擇復(fù)用性,移植性,接受性和傳授性等等。

Perl 是實(shí)用抽取和報(bào)表語(yǔ)言(Practical Extractoin and Report Language)。對(duì)那些熱愛(ài)她的人而言,她是變態(tài)電子垃圾制造者(Pathologically Electric Rubbish Lister)。


Perl 從一開(kāi)始就是設(shè)計(jì)成膠水語(yǔ)言的

缺點(diǎn)

也正是因?yàn)镻erl的靈活性和“過(guò)度”的冗余語(yǔ)法,也因此獲得了write-only的“美譽(yù)”,因?yàn)樵S多Perl程序的代碼令人難以閱讀,實(shí)現(xiàn)相同功能的程序代碼長(zhǎng)度可以相差十倍百倍。但Perl同樣可以將代碼書(shū)寫(xiě)得像Python或Ruby等語(yǔ)言一樣優(yōu)雅。

很多時(shí)候,perl.exe進(jìn)程會(huì)占用很多的內(nèi)存空間,雖然只是一時(shí),但是感覺(jué)不好。

下載安裝

在Linux 系統(tǒng)下、大部分類(lèi)UNIX 系統(tǒng)(包括Mac OS X),perl是隨系統(tǒng)安裝的,可在命令行終端輸入命令perl -v,查看版本,對(duì)于Windows有兩種版本可用:Strawberry Perl 與 ActivePerl。


在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)