主頁(yè) > 知識(shí)庫(kù) > perl常問(wèn)題集合之一

perl常問(wèn)題集合之一

熱門標(biāo)簽:樂(lè)昌電話機(jī)器人 北京語(yǔ)音電銷機(jī)器人價(jià)格 真人語(yǔ)音電銷機(jī)器人系統(tǒng) 邯鄲外呼調(diào)研線路 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 買了外呼系統(tǒng)不想用了怎么辦 電話機(jī)器人電話卡封號(hào)怎么辦 浦東上海400開頭的電話申請(qǐng) 武漢呼叫中心外呼系統(tǒng)線路商
Perl是什么?

  Perl是一個(gè)高階程式語(yǔ)言,由 Larry Wall和其他許多人所寫,融合了許多語(yǔ)言的特性。它主要是由無(wú)所不在的 C語(yǔ)言,其次由 sed、awk,UNIX shell 和至少十?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ì)等之類的任務(wù),都特別 適合用 Perl來(lái)做。這些特長(zhǎng)不但使 Perl成為系統(tǒng)維護(hù)管理者和 CGI作者的寵兒,就連數(shù)學(xué)家、遺傳學(xué)家、新聞從業(yè)者,甚至企業(yè)管理者也都用 Perl,所以或許您也該用。

  誰(shuí)對(duì) perl提供支援?由誰(shuí)負(fù)責(zé)發(fā)展?它為什麼是免費(fèi)的?

  Perl自由開放的發(fā)行方式要?dú)w功於發(fā)燒前的 Internet的傳統(tǒng)文化及其作者 Larry Wall。Perl是由使用者提供支援?,F(xiàn)在 Perl的核心、標(biāo)準(zhǔn)程式庫(kù)、選擇性安裝的模組,以及您現(xiàn)在正在閱讀的使用說(shuō)明都出自於義務(wù)者之手。詳情請(qǐng)見(jiàn) perl原始碼發(fā)行版中所附的 README檔案底部的私人注記。

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

  盡管 GNU計(jì)畫將 Perl囊括在它的發(fā)行中,但是沒(méi)有叫「GNU Perl」這樣的東西。 Perl既非自由軟體基金會(huì)所創(chuàng),亦非由其負(fù)責(zé)維護(hù)。Perl的發(fā)行條款同時(shí)也較 GNU軟體更來(lái)得開放。

  如果您愿意,您可以購(gòu)買商業(yè)性的 Perl支援。但對(duì)大多數(shù)使用者來(lái)說(shuō),非正式性的支援通常已相當(dāng)足夠。詳情請(qǐng)見(jiàn)「到哪里可買到商業(yè)性的 Perl支援」一問(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)。本文由此開始凡提及 Perl語(yǔ)言,皆以目前的量產(chǎn)發(fā)行 為準(zhǔn),除非另外特別注明。

  perl4和 perl5各代表什麼?

  perl4 和 perl5 是對(duì) Perl程式語(yǔ)言的兩個(gè)不同版本的非正式稱呼,因?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 月)常用的稱呼罷了。就像 perl4是指第四個(gè)主要發(fā)行(1991年 3 月),還有 perl1(1988年 1月)、perl2(1988 年 6 月),以及 perl3(1989年 10 月)。

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

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

  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ǔ)言的核心部分,但總是盡一切力量讓新版 和舊版保持一致。因此,盡管不是所有的 perl4 scripts都能在 perl5 之下跑得天衣無(wú)縫,因升級(jí)而導(dǎo)致按照先前版本的 perl所寫的程式無(wú)法使用的情形幾乎不曾發(fā)生(除非該程式倚賴已經(jīng)被去除的 bugs,或使用了極少數(shù)新加入的指令來(lái) 命名)。

  Perl難學(xué)嗎?

  Perl不但容易上手,也容易繼續(xù)學(xué)下去。它看起來(lái)和大多數(shù)您可能已接觸過(guò)的語(yǔ)言一樣。所以如果您只寫過(guò) C 程式、或 awk script、shell script,或甚至只是 Excel的 macro(巨集),您已經(jīng)在半路了。

  大多數(shù)的任務(wù)只需要 Perl語(yǔ)言的一小部分即可完成。發(fā)展 Perl程式的座右銘即 是「不只一種方法可以達(dá)到」(TMTOWTDI; There's More Than One Way To Do It, 有時(shí)讀作「堤姆投迪」)。因此,Perl的學(xué)習(xí)曲線是既平(易學(xué))且長(zhǎng)的 (如果您要的話,有一大堆夠您學(xué)的)。

  最後,Perl(通常)算是解譯式的語(yǔ)言。也就是說(shuō)您寫了程式後不需經(jīng)由一道中 間的編碼過(guò)程即可測(cè)試;這讓您可以很快、很容易地測(cè)試及除錯(cuò)。這個(gè)方便試驗(yàn)的 特性又讓學(xué)習(xí)曲線變得更加平坦。

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


  Perl和其他的程式語(yǔ)言比起來(lái)如何?例如 Java, Python, REXX, Scheme,或 Tcl?

  Perl在某些地方比較好,某些地方較差。精確地說(shuō)到底哪些方面好或壞通常視個(gè) 人偏好而定,所以在新聞?dòng)懻撊褐袉?wèn)這種問(wèn)題很可能會(huì)掀起一場(chǎng)毫無(wú)建設(shè)性的圣戰(zhàn)。

  要比較各語(yǔ)言的異同最好的方法是試著用不同的語(yǔ)言寫功能相同的程式。各程式語(yǔ)言都各有屬於它們各自的新聞?dòng)懻撊?,您可從中學(xué)習(xí)(但希望您不是去和人辨論吵 架的)。


  我可以用 Perl來(lái)做【某種差事】嗎?

  Perl有足夠的彈性和擴(kuò)充性,從只需要寫短短一行的檔案處理工作到復(fù)雜的系統(tǒng),幾乎沒(méi)有什麼做不到的。對(duì)有些人來(lái)說(shuō),Perl的是拿來(lái)做寫 shell程式的理想替代品。其他人則用高階的 Perl來(lái)替代處理許多原先需要用 C或 C++ 一類的低階語(yǔ)言來(lái)達(dá)到的程式。哪些差事決定要用 Perl來(lái)處理,這一切都得看您(或許還有您的經(jīng)理...)。

  如果您有一個(gè)提供 API的程式庫(kù)的話,您可用 C或 C++來(lái)寫一個(gè) Perl 延伸,然後便可透過(guò)它將程式庫(kù)中的任何一部分動(dòng)態(tài)載入您的 Perl主程式中。您也可以 反過(guò)來(lái),用 C或 C++來(lái)寫主程式,然後以即時(shí)動(dòng)態(tài)載入的方式插入一些Perl程式碼,產(chǎn)生一個(gè)威力強(qiáng)大的應(yīng)用程式。

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


  哪些場(chǎng)合下不適合用 Perl?

  當(dāng)您的主管禁止的時(shí)候 -- 不過(guò)請(qǐng)務(wù)必考慮把他們換掉 。

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

  由於種種因素,Perl大概不太適合拿來(lái)做即時(shí)內(nèi)嵌式系統(tǒng)、屬於低層級(jí)的作業(yè)系統(tǒng)發(fā)展工作,例如周邊設(shè)備的 drivers或環(huán)境轉(zhuǎn)換碼、復(fù)雜的多線共用記憶體應(yīng)用程式,或非常大的應(yīng)用程式。您會(huì)發(fā)現(xiàn) Perl 本身便不是以 Perl寫成的。

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

  「perl」和「Perl」有什麼不同?

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


  Perl程式應(yīng)算是 program還是 script?

  都無(wú)所謂。按標(biāo)準(zhǔn)術(shù)語(yǔ)來(lái)講,program指已經(jīng)由編譯程序編譯好、轉(zhuǎn)為機(jī)器碼,可多次執(zhí) 行的程式;而 script則是每次執(zhí)行時(shí)都必須透過(guò)一個(gè)解譯程式來(lái)解譯。然而,Perl程式嚴(yán)格說(shuō)來(lái),既非編譯 (compiled) ,亦非解譯式 (interpreted);因 Perl程式可轉(zhuǎn)譯成位元碼形式存在(可說(shuō)是某種 Perl虛擬機(jī)器 [virtual machine]),或轉(zhuǎn)譯為完全不同的語(yǔ)言,如 C或組合語(yǔ)言。所以光看原始碼很難 說(shuō)它到底是替純解譯器、或是 parse-tree解譯器、位元碼解譯器,還是純碼編譯器而寫;因此這題很難給它一個(gè)確切的答案。

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

  到哪兒可拿到 Larry Wall的智慧諷語(yǔ) (witticisms)?

  一百多條 Larry的諷語(yǔ),源自他【在討論群】的 posts或原始碼,可在http://www.perl.com/CPAN/misc/lwall-quotes 取得。

  我要如何取信、說(shuō)服我的系統(tǒng)管理者/上司/屬下使用第 5/5.004版的 Perl,而不去用其他的語(yǔ)言?
如果您的管理階層或?qū)傧聦?duì)沒(méi)有支援的軟體,或是未正式包含在所購(gòu)買的作業(yè)系統(tǒng)中的軟體存有戒心的話,您可以試著從有助他們自身利益這方面下手。因?yàn)槿绻淌皆O(shè)計(jì)師能由善加利用 Perl的結(jié)構(gòu)、功能性、簡(jiǎn)單性,和威力而獲得更大的生產(chǎn)力的話,那麼典型的管理者/上司/員工或許便可因而加以說(shuō)服。此外,使用 Perl,總的來(lái)講,和其他語(yǔ)言相較,或許也有助於減少交件的時(shí)間。強(qiáng)調(diào)這個(gè)論 點(diǎn)或許對(duì)說(shuō)服他們會(huì)有幫助。

  如果您的專題碰到瓶頸,特別是有關(guān)轉(zhuǎn)譯或測(cè)試方面的問(wèn)題,那麼 Perl可以說(shuō)絕 對(duì)會(huì)是一個(gè)既可行且快的解決之道。您在當(dāng)說(shuō)客的時(shí)候,千萬(wàn)別忘了要提:Perl已 被世界上許多大型的軟硬體公司廣泛、大量地使用,極為可靠、有效。事實(shí)上,現(xiàn) Perl已成為許多 Unix業(yè)者所售的作業(yè)系統(tǒng)的標(biāo)準(zhǔn)配備了。而且如果您無(wú)法在 詳盡的使用說(shuō)明,包括這份 FAQ之中為您的問(wèn)題找到解答的話,送封 post 到新聞?dòng)懻撊杭纯伞?

  如果您面對(duì)反對(duì) perl升級(jí)的聲音,那麼告訴他們 Perl發(fā)展小組已經(jīng)完全不再維護(hù)或支援第四版的 perl了。perl5的另一個(gè)大賣點(diǎn)是它有大量的模組和延伸,可大大減少計(jì)畫的發(fā)展時(shí)間。還有,告訴他們第四和第五版 Perl之間的差異就如 awk 和 C++的差別一樣(嗯,或許沒(méi)有差得那麼明顯,但您知道我的意思就好)。如果您想得到支援而且想確保您現(xiàn)在所發(fā)展的軟體在未來(lái)能繼續(xù)工作的話,那麼您得跑有支援的版本。這大概也就是說(shuō)要跑 5.004 版的,盡管 5.003 版仍算是不錯(cuò)(它只落後一年、一版)。不過(guò)因?yàn)橛行﹪?yán)重的 bugs曾在 5.000 和 5.002版之間被消除,所以您至少應(yīng)升級(jí)到比這幾個(gè)版本高才是。

標(biāo)簽:石嘴山 淄博 河北 松原 自貢 鄂州 六安 宜春

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl常問(wèn)題集合之一》,本文關(guān)鍵詞  perl,常問(wèn)題,常,問(wèn)題,集合,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《perl常問(wèn)題集合之一》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于perl常問(wèn)題集合之一的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章