Perl常見(jiàn)問(wèn)題集錦
本文和大家重點(diǎn)討論一下Perl常見(jiàn)問(wèn)題,Perl是一個(gè)高階程式語(yǔ)言,由LarryWall和其他許多人所寫(xiě),融合了許多語(yǔ)言的特性,請(qǐng)看本文的詳細(xì)介紹。
Perl常見(jiàn)問(wèn)題集合
◆Perl常見(jiàn)問(wèn)題一: Perl是什么?
Perl是一個(gè)高階程式語(yǔ)言,由LarryWall和其他許多人所寫(xiě),融合了許多語(yǔ)言的特性。它主要是由無(wú)所不在的C語(yǔ)言,其次由sed、awk,UNIXshell和至少十?dāng)?shù)種其他的工具和語(yǔ)言所演化而來(lái)。Perl對(duì)process、檔案,和文字有很強(qiáng)的處理、變換能力,因此舉凡有關(guān)快速原型設(shè)計(jì)、系統(tǒng)工具、軟體工具、系統(tǒng)管理、資料庫(kù)連結(jié)、圖像程式設(shè)計(jì)、網(wǎng)路連結(jié),和WWW程式設(shè)計(jì)等之類(lèi)的任務(wù),都特別適合用Perl來(lái)做。這些特長(zhǎng)不但使Perl成為系統(tǒng)維護(hù)管理者和CGI作者的寵兒,就連數(shù)學(xué)家、遺傳學(xué)家、新聞從業(yè)者,甚至企業(yè)管理者也都用Perl,所以或許您也該用。
◆Perl常見(jiàn)問(wèn)題二: 誰(shuí)對(duì)Perl提供支援?由誰(shuí)負(fù)責(zé)發(fā)展?它為什麼是免費(fèi)的?
Perl自由開(kāi)放的發(fā)行方式要?dú)w功於發(fā)燒前的Internet的傳統(tǒng)文化及其作者LarryWall。Perl是由使用者提供支援。現(xiàn)在Perl的核心、標(biāo)準(zhǔn)程式庫(kù)、選擇性安裝的模組,以及您現(xiàn)在正在閱讀的使用說(shuō)明都出自於義務(wù)者之手。詳情請(qǐng)見(jiàn)Perl原始碼發(fā)行版中所附的README檔案底部的私人注記。
值得一提的是,核心發(fā)展小組(稱(chēng)為PerlPorters)的成員是一群高度熱情奉獻(xiàn)的人仕,全心投入發(fā)展出比您所能想像、用錢(qián)能買(mǎi)得到還要更好的免費(fèi)軟體。您可經(jīng)由news://genetics.upenn.edu/Perl.porters-gw/和http://www.frii.com/~gnat/Perl/porters/summary.html取得關(guān)於新近發(fā)展計(jì)畫(huà)的情報(bào)。
盡管GNU計(jì)畫(huà)將Perl囊括在它的發(fā)行中,但是沒(méi)有叫「GNUPerl」這樣的東西。Perl既非自由軟體基金會(huì)所創(chuàng),亦非由其負(fù)責(zé)維護(hù)。Perl的發(fā)行條款同時(shí)也較GNU軟體更來(lái)得開(kāi)放。
如果您愿意,您可以購(gòu)買(mǎi)商業(yè)性的Perl支援。但對(duì)大多數(shù)使用者來(lái)說(shuō),非正式性的支援通常已相當(dāng)足夠。詳情請(qǐng)見(jiàn)「到哪里可買(mǎi)到商業(yè)性的Perl支援」一問(wèn)的回答。
◆Perl常見(jiàn)問(wèn)題三: 我該用哪一個(gè)版本的Perl?
您絕對(duì)該用第五版。第四版不但老舊、功能較局限,而且已經(jīng)不再維護(hù)了。它最後一次的修正(4.036)是在1992年。Perl最新的量產(chǎn)發(fā)行版本是5.004。等到您讀這篇文章時(shí),我們可能已經(jīng)又發(fā)行了幾個(gè)正式的除錯(cuò)版本,同時(shí)大概又會(huì)有些替下一版路的實(shí)驗(yàn)版出來(lái)。本文由此開(kāi)始凡提及Perl語(yǔ)言,皆以目前的量產(chǎn)發(fā)行為準(zhǔn),除非另外特別注明。
◆Perl常見(jiàn)問(wèn)題四: Perl4和Perl5各代表什麼?
Perl4和Perl5是對(duì)Perl程式語(yǔ)言的兩個(gè)不同版本的非正式稱(chēng)呼,因?yàn)檎f(shuō)「Perl5」要比說(shuō)「第5(.004)版的Perl」要來(lái)得簡(jiǎn)單。但是有些人誤將其會(huì)意為:Perl5是一個(gè)單獨(dú)的語(yǔ)言;這是不正確的。Perl5只不過(guò)是對(duì)第五個(gè)主要發(fā)行版本(1994年10月)常用的稱(chēng)呼罷了。就像Perl4是指第四個(gè)主要發(fā)行(1991年3月),還有Perl1(1988年1月)、Perl2(1988年6月),以及Perl3(1989年10月)。
5.0的發(fā)行基本上是從零開(kāi)始,所有程式碼完全重新寫(xiě)過(guò)的版本。它已經(jīng)被模組化、物件導(dǎo)向化、微調(diào)、精簡(jiǎn)化,及效率化,以致程式碼幾乎已變得和原來(lái)的不相同了。盡管如此,使用介面大致上仍然相同,而且和先前的版本之間保持了很高的一致性。
為了避免「Perl5是什麼語(yǔ)言?」這類(lèi)的混淆,有些人索性完全避免「Perl5」,而單用「Perl」來(lái)指稱(chēng)最近的Perl版本。其實(shí)用不著這麼累就是了。
◆Perl常見(jiàn)問(wèn)題五: Perl的發(fā)展已穩(wěn)定了嗎?
融合了除錯(cuò)和新功能的量產(chǎn)發(fā)行在推出前皆經(jīng)過(guò)廣泛的測(cè)試。自5.000發(fā)行以來(lái),我們平均一年才出版一次量產(chǎn)發(fā)行。
Larry和Perl發(fā)展小組有時(shí)候會(huì)修改語(yǔ)言的核心部分,但總是盡一切力量讓新版和舊版保持一致。因此,盡管不是所有的Perl4scripts都能在Perl5之下跑得天衣無(wú)縫,因升級(jí)而導(dǎo)致按照先前版本的Perl所寫(xiě)的程式無(wú)法使用的情形幾乎不曾發(fā)生(除非該程式倚賴(lài)已經(jīng)被去除的bugs,或使用了極少數(shù)新加入的指令來(lái)命名)。
◆Perl常見(jiàn)問(wèn)題六: Perl難學(xué)嗎?
Perl不但容易上手,也容易繼續(xù)學(xué)下去。它看起來(lái)和大多數(shù)您可能已接觸過(guò)的語(yǔ)言一樣。所以如果您只寫(xiě)過(guò)C程式、或awkscript、shellscript,或甚至只是Excel的macro(巨集),您已經(jīng)在半路了。
大多數(shù)的任務(wù)只需要Perl語(yǔ)言的一小部分即可完成。發(fā)展Perl程式的座右銘即是「不只一種方法可以達(dá)到」(TMTOWTDI;There'sMoreThanOneWayToDoIt,有時(shí)讀作「堤姆投迪」)。因此,Perl的學(xué)習(xí)曲線是既平(易學(xué))且長(zhǎng)的(如果您要的話,有一大堆夠您學(xué)的)。
最後,Perl(通常)算是解譯式的語(yǔ)言。也就是說(shuō)您寫(xiě)了程式後不需經(jīng)由一道中間的編碼過(guò)程即可測(cè)試;這讓您可以很快、很容易地測(cè)試及除錯(cuò)。這個(gè)方便試驗(yàn)的特性又讓學(xué)習(xí)曲線變得更加平坦。
有助於修習(xí)Perl的一些事:UNIX經(jīng)驗(yàn)、對(duì)幾乎是任何一種程式語(yǔ)言的經(jīng)驗(yàn)、了解regularexpressions(正規(guī)表示法),以及看得懂旁人寫(xiě)的程式的能力。如果您有什麼想用Perl來(lái)做的事,那麼可能已經(jīng)有前人做過(guò)了,而且實(shí)例通常可免費(fèi)取得。還有別忘了新的Perl模組。模組在這份FAQ的第叁部分有詳細(xì)的討論,還有【別忘了您的好朋友】CPAN,這會(huì)在第二部分談到。
【編輯推薦】