專家答疑 Perl常見問題匯總
本文和大家重點討論一下Perl常見問題,Perl的標準發行版(由Perl發展小組負責維護)僅以原始碼形式發行,相信通過這些常見問題的解答你對Perl編程語言一定會有新的認識。
Perl常見問題集合
◆Perl常見問題:哪些平臺上有Perl?要到哪里去找?
Perl的標準發行版(由Perl發展小組負責維護)僅以原始碼形式發行。您可在http://www.Perl.com/CPAN/src/latest.tar.gz處取得。這個檔案的格式是POSIXtar檔案柜,再以gzip格式壓縮。這套原始碼完全不需任何移植工作便可輕易地在絕大多數的Unix系統(Perl的原生系統),以及Plan9、VMS、QNX、OS/2,和Amiga上編譯安裝完成。盡管有謠傳說(即將推出的)第5.004版或許能直接在WindowsNT上成功地編譯和安裝,但這尚待證實。適合32位元的微軟系統和蘋果系統、以執行檔形式發行的Perl各可在http://www.Perl.com/CPAN/ports/這個目錄底下找到。由於這兩個不屬於標準發行的一部分,它們可能(事實上的確)和基本的Perl有多方面的不同。要確切知道到底哪些地方不同,您得自行查閱它們 各自的發行說明。這些差異可能是正面的(譬如它們可能附有一些原始碼發行的Perl所沒有的延伸,提供專屬某一平臺的特殊功能),亦或負面的(例如它們可能是植基於比較老舊的Perl原始碼發行版)。
一個實用、專為Win32Perl使用者編寫的FAQ可在 http://www.endcontsw.com/people/evangelo/Perl_for_Win32_FAQ.html處取得。
◆Perl常見問題:要如合取得以執行檔形式發行的Perl?
不管為什麼您的作業系統業者沒有將C編譯器附在所賣的作業系統中,最好的方法是到網路上去抓一份gcc的執行檔,然後用它來編譯Perl。CPAN上所放的gcc執行檔僅專門提供幾個特別難拿到免費編譯器的平臺,而不是給任何Unix系統的。
您的第一步應該是查看http://www.Perl.com/CPAN/ports這個檔案,看看可以拿到哪些安裝資料。http://www.cs.ruu.nl/~piet/Perl5dos.html提供了一份有關在DOS上安裝Perl的資料;而http://www.cs.ruu.nl/~piet/Perlwin3.html則是關於在Windows3.1上安裝的資料。
◆Perl常見問題:我的系統里沒有C編譯器。要如何編譯Perl?
因為您沒有C編譯器,您是沒指望了,而您的經銷商則該拿去當作祭拜列位升陽神的供品。不過說這些風涼話無濟於事。
您首先需要做的是替您的系統找一個gcc的執行檔。參閱和您的作業系統相關的各UsenetFAQs,看到哪里可以找到這種作業系統的gcc執行檔。
我直接將Perl的執行檔從一臺機器上復制到另一臺機器上,但是程式跑不起來。那大概是您忘了復制程式庫,或者是程式庫的路徑不同的關系。您真的應該在那臺要安裝Perl的機器上將整套發行從頭編譯,然後打makeinstall來安裝。其他的方法大多注定要失敗。
有一個簡單的方法可用來檢查和確定東西有沒有裝對地方--把編入Perl的@INC陣列(Perl用它來尋找程式庫的路徑)印出:Perl-e'printjoin("\n",@INC)'
如果這個指令列出了任何在您系統上不存在的路徑,那麼您或許得將適當的程式庫移到這些地方,或者制做適當的symlinks、aliases或捷徑。
您或許會想看看HowdoIkeepmyownmodule/librarydirectory?。
我抓回了原始碼,試著編譯Perl,但是gdbm/dynamicloading/malloc/linking/...部分失敗。要如何將它搞定?
細讀INSTALL這個檔案,這是原始碼發行版里面的一個檔案。有時候自動設定程式(Configure)對某些較不尋常的系統、平臺特質、或變異會不知所措。該檔案對該如何處這類的問題,大都有詳細的說明。#p#
◆Perl常見問題:Perl有哪些模組和延伸?CPAN是什麼?CPAN/src/...又代表什麼?
CPAN代表的是「大Perl檔案庫網絡」(ComprehensivePerlArchiveNetwork),一個在全世界數十臺機器之間相互映射的巨大檔案庫。CPAN包含了原始碼、對各非原生系統的移植、使用說明、程式,以及許多由第叁類團體所寫的模組和延伸,從各商業品牌的資料庫介面、到鍵盤/螢幕控制,乃至全球資訊網漫游及CGI程式皆一應具全。CPAN的總主機是ftp://ftp.funet.fi/pub/languages/Perl/CPAN/,但您也可以透過這個位址:http://www.Perl.com/CPAN/CPAN.html來自動連接一個在地理位置上最接近您的站。至於這個設計的運作原理,請看http://www.Perl.com/CPAN(最後頭沒有斜線)的說明。
CPAN/路徑/...是CPAN站臺上頭的檔案的命名規范。CPAN代表一個CPAN映射的基準目錄,然後其馀的路徑是由該目錄到一個檔案的路徑。例如,如果您使用ftp://ftp.funet.fi/pub/languages/Perl/CPAN來做您的CPAN站,那麼CPAN/misc/japh這個檔案便可以從ftp://ftp.funet.fi/pub/languages/Perl/CPAN/misc/japh抓下來。
由於目前CPAN檔案庫中已經有數百個模組,因此幾乎任何您所能想到的用途,大概都已經有現成的模組可以辦到。目前在CPAN/modules/by-category/底下的類別包括了Perl核心模組、協助發展模組、作業系統介面、網路、周邊設備、不同processes間之溝通、資料型態工具、資料庫介面、使用者介面、與其他語言介面、檔名、檔案系統、檔案鎖定、軟體國際化及地方化、全球資訊網支援、伺服軟體工具、檔案庫和檔案壓縮、圖形變換處理、電子郵件及新聞討論群、程式流程控制工具、filehandles和輸入/輸出、微軟視窗模組,以及雜項模組等。
◆Perl常見問題:是不是有一個經ISO【國際標準局】或ANSI【美國國家標準局】認可的Perl版本?
當然沒有。Larry認為他得先被認可後然後才會輪到Perl。
◆Perl常見問題:MacPerl
這是討論麥金塔Perl的郵遞論壇。詳情請連絡「mac-Perl-request@iis.ee.ethz.ch」。還有您可以由MatthiasNeeracher(MacPerl的創造及維護者)的網頁http://www.iis.ee.ethz.ch/~neeri/macintosh/Perl.html連到許多有趣的MacPerl站臺,以及事先編譯好的應用程式/MPW發展工具。
◆Perl常見問題:Perl5-Porters
這是Perl的核心發展小組用來討論語言本身除錯和修改的郵遞論壇。您可寄信到Perl5-porters-request@Perl.org,在信中正文的地方寫上「help」,便可收到有關的訂閱資料。
◆Perl常見問題:NTPerl
這是討論Win32Perl5(WindowsNT和Win95)的郵遞論壇。如欲訂閱,寄信到ListManager@ActiveWare.com,在信中正文的地方寫上:
subscribePerl-Win32-Users
這個用Perl寫的郵遞論壇管理軟體會自動找出您的位址,然後將您加入名單中。如果您要取消訂閱,寄信到同一個地方,在正文處注明:unsubscribePerl-Win32-Users
您也可以連到http://www.activeware.com/,然後選擇「MailingLists」,便可加入或離開這個郵遞論壇了。
◆Perl常見問題:Perl-Packrats
這是用來討論Perl資料的儲存管理等相關事宜,特別是有關大Perl檔案庫網路(CPAN)的郵遞論壇。有意訂閱者可emailmajordomo@cis.ufl.edu,文中注明:subscribePerl-packrats
這個也是用Perl寫的郵遞論壇管理軟體會自動找出您的位址,然後將您加入名單中。如果您要取消訂閱,寄信到同一個地方,於正文處將相同的訂閱指令前加上「un」,像這樣:unsubscribePerl-packrats
存有comp.lang.Perl.miscposts的檔案庫
◆Perl常見問題:試過DejaNews或AltaVista了嗎?
ftp.cis.ufl.edu:/pub/Perl/comp.lang.Perl.*/monthly有自1989年12月起(缺1991年8月份)至1993年12月止的完整收藏。每個月的posts是以一個大檔案的方式存放。
您可能會想要一個功能比較完備的訊問和抽取系統,而不只是能將檔案名稱列印出來;最好是一個使用索引作快速尋找的引擎,且至少可以按作者、日期、主題、thread(一如trn),或許還有關鍵字,來作搜索。作者所知道最好的方法是MH套件的pick指令,但是如果拿它來搜索上萬篇文章的話真的是很慢。
如果您曾經找到、或知道到哪兒可找到殘缺的部分,請告知:Perlfaq-suggestions@Perl.com。
◆Perl常見問題:Perl訓練課程
雖然有些大型的訓練公司提供各種Perl的訓練課程,但您可能會較頃向於找真正密切投入Perl發展的人來教您。Perl發展小組中兩位知名的成員--TomChristiansen和RandalSchwartz,加上二人手下的眾爪牙,聯手提供各項有關Perl的專業入門講座和研討課程。這些課程包括了公開座談,私人企業員工訓練計畫,以及直接飛到科羅拉多和奧勒岡上課等。詳情請見http://www.Perl.com/Perl/info/training.html。
◆Perl常見問題:如果發現bugs要向何處報告?
如果您發現Perl解譯器或標準發行中的模組有bugs,想報知Perl發展小組的話,請使用Perl發行中所附的Perlbug程式,或將您的報告email到Perlbug@Perl.com。
如果您想報告的bug是有關某個非標準發行的Perl(詳見「哪些平臺上有Perl?」一題的答案)、某可執行檔形式的發行,或是某非標準的模組(譬如Tk、CGI等),那麼請參考它所附的使用說明,以確定最合適報告bugs的地方。
詳情請見使用手冊中Perlbug一篇(附於Perl5.004或以後版本中)。
◆Perl常見問題:什麼是Perl.com、Perl.org,和PerlInstitute?
Perl.org是PerlInstitute的正式傳播媒介。TPI(ThePerlInstitute)的座右銘是「幫助他人幫Perl助人」(或差不多這個意思)。這是一個非營利性的組織,主旨在支援Perl的發展、文獻,和傳播。目前TPI的領導人包括了LarryWall、TomChristiansen,和RandalSchwartz,這些名字或許您曾在這篇文章的其他地方見過。
Perl.com是TomChristiansen注冊的網域。早在Perl.org成立之前他便創立了這個站臺,做為公共服務之用。這是Perl國度的公共電臺,所有Perl東西的資訊交易所,該站的網頁不接受登載任何商業廣告、光鮮的GIF看板,或者是(啊!)Javaapplets。
◆Perl常見問題:如何學著用Perl來寫物件導向程式?
Perltoot(附在5.004、或更新版之中)是一個很好的起點。此外,Perlobj、Perlref,及Perlmod都是很有用的參考資料;而Perlbot則還提供了一些非常好的技巧和心得。
【編輯推薦】

















