麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

perl常問問題集--第一篇

2019-11-18 17:23:41
字體:
來源:轉載
供稿:網友

目錄
篇名
概述
Perl是什麼?
誰對perl提供支援?由誰負責發展?它為什麼是免費的?
我該用哪一個版本的Perl?
perl4和perl5各代表什麼?
Perl的發展已穩定了嗎?
Perl難學嗎?
Perl和其他的程式語言比起來如何?例如java,Python,REXX,Scheme,或Tcl?
我可以用Perl來做【某種差事】嗎?
哪些場合下不適合用Perl?
「perl」和「Perl」有什麼不同?
Perl程式應算是PRogram還是script?
JAPH是什麼?
到哪兒可拿到LarryWall的智慧諷語(witticisms)?
我要如何取信、說服我的系統管理者/上司/屬下使用第5/5.004版的Perl,而不去用其他的語言?
作者及版權事宜

--------------------------------------------------------------------------------

篇名
perlfaq1-概括性的Perl問題(原文版Revision:1.12,Date:1997/04/2422:43:34.17:23:09.中譯版$Revision:1.12$$Date:1997/07/1220:41:48$)


--------------------------------------------------------------------------------

概述
本篇涵蓋非常概括性、高層次的Perl問題。


--------------------------------------------------------------------------------

Perl是什麼?
Perl是一個高階程式語言,由LarryWall和其他許多人所寫,融合了許多語言的特性。它主要是由無所不在的C語言,其次由sed、awk,UNIXshell和至少十數種其他的工具和語言所演化而來。Perl對process、檔案,和文字有很強的處理、變換能力,因此舉凡有關快速原型設計、系統工具、軟體工具、系統管理、資料庫連結、圖像程式設計、網路連結,和WWW程式設計等之類的任務,都特別適合用Perl來做。這些特長不但使Perl成為系統維護管理者和CGI作者的寵兒,就連數學家、遺傳學家、新聞從業者,甚至企業管理者也都用Perl,所以或許您也該用。


--------------------------------------------------------------------------------

誰對perl提供支援?由誰負責發展?它為什麼是免費的?
Perl自由開放的發行方式要歸功於發燒前的Internet的傳統文化及其作者LarryWall。Perl是由使用者提供支援。現在Perl的核心、標準程式庫、選擇性安裝的模組,以及您現在正在閱讀的使用說明都出自於義務者之手。詳情請見perl原始碼發行版中所附的README檔案底部的私人注記。

值得一提的是,核心發展小組(稱為PerlPorters)的成員是一群高度熱情奉獻的人仕,全心投入發展出比您所能想像、用錢能買得到還要更好的免費軟體。您可經由news://genetics.upenn.edu/perl.porters-gw/和http://www.frii.com/~gnat/perl/porters/summary.html取得關於新近發展計畫的情報。

盡管GNU計畫將Perl囊括在它的發行中,但是沒有叫「GNUPerl」這樣的東西。Perl既非自由軟體基金會所創,亦非由其負責維護。Perl的發行條款同時也較GNU軟體更來得開放。

如果您愿意,您可以購買商業性的Perl支援。但對大多數使用者來說,非正式性的支援通常已相當足夠。詳情請見「到哪里可買到商業性的Perl支援」一問的回答。


--------------------------------------------------------------------------------

我該用哪一個版本的Perl?
您絕對該用第五版。第四版不但老舊、功能較局限,而且已經不再維護了。它最後一次的修正(4.036)是在1992年。Perl最新的量產發行版本是5.004。等到您讀這篇文章時,我們可能已經又發行了幾個正式的除錯版本,同時大概又會有些替下一版路的實驗版出來。本文由此開始凡提及Perl語言,皆以目前的量產發行為準,除非另外特別注明。


--------------------------------------------------------------------------------

perl4和perl5各代表什麼?
perl4和perl5是對Perl程式語言的兩個不同版本的非正式稱呼,因為說「perl5」要比說「第5(.004)版的Perl」要來得簡單。但是有些人誤將其會意為:perl5是一個單獨的語言;這是不正確的。perl5只不過是對第五個主要發行版本(1994年10月)常用的稱呼罷了。就像perl4是指第四個主要發行(1991年3月),還有perl1(1988年1月)、perl2(1988年6月),以及perl3(1989年10月)。

5.0的發行基本上是從零開始,所有程式碼完全重新寫過的版本。它已經被模組化、物件導向化、微調、精簡化,及效率化,以致程式碼幾乎已變得和原來的不相同了。盡管如此,使用介面大致上仍然相同,而且和先前的版本之間保持了很高的一致性。

為了避免「perl5是什麼語言?」這類的混淆,有些人索性完全避免「perl5」,而單用「perl」來指稱最近的perl版本。其實用不著這麼累就是了。


--------------------------------------------------------------------------------

Perl的發展已穩定了嗎?
融合了除錯和新功能的量產發行在推出前皆經過廣泛的測試。自5.000發行以來,我們平均一年才出版一次量產發行。

Larry和Perl發展小組有時候會修改語言的核心部分,但總是盡一切力量讓新版和舊版保持一致。因此,盡管不是所有的perl4scripts都能在perl5之下跑得天衣無縫,因升級而導致按照先前版本的perl所寫的程式無法使用的情形幾乎不曾發生(除非該程式倚賴已經被去除的bugs,或使用了極少數新加入的指令來命名)。


--------------------------------------------------------------------------------

Perl難學嗎?
Perl不但容易上手,也容易繼續學下去。它看起來和大多數您可能已接觸過的語言一樣。所以如果您只寫過C程式、或awkscript、shellscript,或甚至只是Excel的macro(巨集),您已經在半路了。

大多數的任務只需要Perl語言的一小部分即可完成。發展Perl程式的座右銘即是「不只一種方法可以達到」(TMTOWTDI;There'sMoreThanOneWayToDoIt,有時讀作「堤姆投迪」)。因此,Perl的學習曲線是既平(易學)且長的(如果您要的話,有一大堆夠您學的)。

最後,Perl(通常)算是解譯式的語言。也就是說您寫了程式後不需經由一道中間的編碼過程即可測試;這讓您可以很快、很容易地測試及除錯。這個方便試驗的特性又讓學習曲線變得更加平坦。

有助於修習Perl的一些事:UNIX經驗、對幾乎是任何一種程式語言的經驗、了解regularexpressions(正規表示法),以及看得懂旁人寫的程式的能力。如果您有什麼想用Perl來做的事,那麼可能已經有前人做過了,而且實例通常可免費取得。還有別忘了新的Perl模組。模組在這份FAQ的第叁部分有詳細的討論,還有【別忘了您的好朋友】CPAN,這會在第二部分談到。


--------------------------------------------------------------------------------

Perl和其他的程式語言比起來如何?例如Java,Python,REXX,Scheme,或Tcl?
Perl在某些地方比較好,某些地方較差。精確地說到底哪些方面好或壞通常視個人偏好而定,所以在新聞討論群中問這種問題很可能會掀起一場毫無建設性的圣戰。

要比較各語言的異同最好的方法是試著用不同的語言寫功能相同的程式。各程式語言都各有屬於它們各自的新聞討論群,您可從中學習(但希望您不是去和人辨論吵架的)。


--------------------------------------------------------------------------------

我可以用Perl來做【某種差事】嗎?
Perl有足夠的彈性和擴充性,從只需要寫短短一行的檔案處理工作到復雜的系統,幾乎沒有什麼做不到的。對有些人來說,Perl的是拿來做寫shell程式的理想替代品。其他人則用高階的Perl來替代處理許多原先需要用C或C 一類的低階語言來達到的程式。哪些差事決定要用Perl來處理,這一切都得看您(或許還有您的經理...)。

如果您有一個提供API的程式庫的話,您可用C或C 來寫一個Perl延伸,然後便可透過它將程式庫中的任何一部分動態載入您的Perl主程式中。您也可以反過來,用C或C 來寫主程式,然後以即時動態載入的方式插入一些Perl程式碼,產生一個威力強大的應用程式。

話雖如此,對解決某些特定的問題,使用小型、專精,專為特殊用途設計的語言總是比較方便的。Perl的設計是盡力地滿足各種不同人的需要,因而不特別偏頗任何人。至於特殊功能語言的例子,隨便舉兩個,譬如prolog和matlab便是。


--------------------------------------------------------------------------------

哪些場合下不適合用Perl?
當您的主管禁止的時候--不過請務必考慮把他們換掉:-)。

說真的,如果您已經有用另一個語言寫成的應用程式(而且寫得很好)的時候,或者是已經有替某些特定的工作設計的語言(例如:prolog,make),這個時候就不需要用Perl。

由於種種因素,Perl大概不太適合拿來做即時內嵌式系統、屬於低層級的作業系統發展工作,例如周邊設備的drivers或環境轉換碼、復雜的多線共用記憶體應用程式,或非常大的應用程式。您會發現Perl本身便不是以Perl寫成的。

剛出爐的Perl純碼編譯器或許可幫忙去除一些上述的限制,但您要了解:Perl在本質上仍是一活性變數語言(dynamicallytypedlanguage),而非固性變數(staticallytyped)。只要您不將核電廠或腦科手術監視器所用的程式放心地用Perl來寫,您自然就不會闖禍遭殃。這樣Larry晚上也可以睡得安穩些--股市分析程式不在此限:-)。


--------------------------------------------------------------------------------

「perl」和「Perl」有什麼不同?
二者差一個位元。喔,您不是說在ASCII上的差別啊?:-)Larry現在用「Perl」來代表語言本身,而以「perl」來表示該語言的體現,即目前的解譯器。因此,作者有句幽默小語說:「只有perl可以解譯Perl」。要不要遵照這個用法是您的自由。舉一反叁的話,我們可依樣畫葫蘆地說「awk和perl」還有「Python和Perl」,但卻不可將「awk和Perl」或是「Python和perl」擺在一起。


--------------------------------------------------------------------------------

Perl程式應算是program還是script?
都無所謂。

按標準術語來講,program指已經由編譯程序編譯好、轉為機器碼,可多次執行的程式;而script則是每次執行時都必須透過一個解譯程式來解譯。然而,Perl程式嚴格說來,既非編譯(compiled),亦非解譯式(interpreted);因Perl程式可轉譯成位元碼形式存在(可說是某種Perl虛擬機器[virtualmachine]),或轉譯為完全不同的語言,如C或組合語言。所以光看原始碼很難說它到底是替純解譯器、或是parse-tree解譯器、位元碼解譯器,還是純碼編譯器而寫;因此這題很難給它一個確切的答案。


--------------------------------------------------------------------------------

JAPH是什麼?
這是過去一些在討論群中自稱``justanotherperlhacker''的人的簽名檔,約有一百個比較早期的,可在http://www.perl.com/CPAN/misc/japh取得。


--------------------------------------------------------------------------------

到哪兒可拿到LarryWall的智慧諷語(witticisms)?
一百多條Larry的諷語,源自他【在討論群】的posts或原始碼,可在http://www.perl.com/CPAN/misc/lwall-quotes取得。


--------------------------------------------------------------------------------

我要如何取信、說服我的系統管理者/上司/屬下使用第5/5.004版的Perl,而不去用其他的語言?
如果您的管理階層或屬下對沒有支援的軟體,或是未正式包含在所購買的作業系統中的軟體存有戒心的話,您可以試著從有助他們自身利益這方面下手。因為如果程式設計師能由善加利用Perl的結構、功能性、簡單性,和威力而獲得更大的生產力的話,那麼典型的管理者/上司/員工或許便可因而加以說服。此外,使用Perl,總的來講,和其他語言相較,或許也有助於減少交件的時間。強調這個論點或許對說服他們會有幫助。

如果您的專題碰到瓶頸,特別是有關轉譯或測試方面的問題,那麼Perl可以說絕對會是一個既可行且快的解決之道。您在當說客的時候,千萬別忘了要提:Perl已被世界上許多大型的軟硬體公司廣泛、大量地使用,極為可靠、有效。事實上,現Perl已成為許多Unix業者所售的作業系統的標準配備了。而且如果您無法在詳盡的使用說明,包括這份FAQ之中為您的問題找到解答的話,送封post到新聞討論群即可。

如果您面對反對perl升級的聲音,那麼告訴他們Perl發展小組已經完全不再維護或支援第四版的perl了。perl5的另一個大賣點是它有大量的模組和延伸,可大大減少計畫的發展時間。還有,告訴他們第四和第五版Perl之間的差異就如awk和C 的差別一樣(嗯,或許沒有差得那麼明顯,但您知道我的意思就好)。如果您想得到支援而且想確保您現在所發展的軟體在未來能繼續工作的話,那麼您得跑有支援的版本。這大概也就是說要跑5.004版的,盡管5.003版仍算是不錯(它只落後一年、一版)。不過因為有些嚴重的bugs曾在5.000和5.002版之間被消除,所以您至少應升級到比這幾個版本高才是。


--------------------------------------------------------------------------------

作者及版權事宜
Copyright(c)1997TomChristiansenandNathanTorkington.著作權所有,Allrightsreserved。有關使用、(轉)發行事宜,詳見perlfaq。

中譯版著作權所有:蕭百齡及兩只老虎工作室。本中譯版遵守并使用與原文版相同的使用條款發行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 精品国产视频一区二区三区 | 极品一级片 | 自拍偷拍亚洲图片 | wwwxxx国产| 伊人网站| 国产亚洲精品久久久久久久久久 | 国产品久久| 在线免费黄色网 | 亚洲一区二区在线 | 爽毛片 | 最新福利在线 | 久久久电影电视剧免费看 | 一级片九九 | 91精品观看91久久久久久国产 | 国产精品久久久久久久不卡 | 中文字幕 在线观看 | 九九热九九| 中文字幕在线观看国产 | 黄网站免费在线看 | 日本黄色免费观看视频 | 国产亚洲精品视频中文字幕 | 国产一区二区三区在线免费观看 | 日日噜噜噜噜久久久精品毛片 | www.99热精品 | 男女无套免费视频 | 国产成人午夜高潮毛片 | 在线免费日本 | 成年人在线视频免费 | 国产亚洲精彩视频 | 国产高清美女一级毛片久久 | 欧美韩国一区 | 国产精品夜色视频一级区 | 国产精品jk白丝蜜臀av软件 | 午夜视频国产 | 亚洲成人福利网站 | 毛片免费在线观看视频 | chinese xxxx hd pron8 tube | 色域tv | 久久久久久免费 | 九九精品视频观看 | 中文字幕精品在线播放 |