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