複製鏈接
請複製以下鏈接發送給好友

perl

鎖定
Perl一種功能豐富的計算機程序語言,運行在超過100種計算機平台上,適用廣泛,從最初是為文本處理而開發的,現在用於各種任務,包括系統管理,Web開發,網絡編程GUI開發等。 [1] 
Perl易於使用、高效、完整,而不失美觀(小巧,優雅,簡約)。同時支持過程和面向對象編程,對文本處理具有強大的內置支持,並且擁有第三方模塊集合之一。 [1]  Perl借取了C、sed、awk、shell腳本語言以及很多其他程序語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN
軟件名稱
Perl
軟件平台
Windows、UnixLinuxmacOS [3] 
上線時間
1987年12月
最近更新時間
2020年
軟件語言
Perl
開發商
Perl Foundation [1] 
軟件授權
Perl Foundation [1] 
軟件版本
5.32.0
軟件大小
17.36 MB

perl產生背景

1987年Larry Wall發佈Perl1.0以來,用户數一直急劇增加,同時越來越多的程序員與軟件開發者(商)參與Perl的開發。從最初被當做一種跨平台環境中書寫可移植工具的高級語言開始,Perl被廣泛地認為是一種工業級的強大工具,可以在任何地方用來完成你的工作。perl的前身是Unix系統管理的一個工具,被用在無數的小任務裏。後逐漸發展成為一種功能強大的程序設計語言,用作Web編程、數據庫處理、XML處理以及系統管理;在完成這些工作時,同時仍能處理日常細小工作,這是它的設計初衷。Perl特別適合系統管理和Web編程。實際上已經被用在所有Unix(包括Linux)捆綁在一起作為標準部件發佈,同時也用於Microsoft Windows和幾乎所有操作系統。Perl的應用非常廣泛。 [4] 

perl發展歷程

2021年1月,Perl 基礎架構博客 Perl NOC 報道稱,Perl.com 官網被劫持,不再指向它原本應該指向的地方。它不再指向 Perl 相關的新聞網站,而被指向了一個停車網站。更嚴重的是,它被用於分發惡意軟件 [2] 

perl主要功能

Perl最初的設計者為拉里·沃爾(Larry Wall),他於1987年12月18日發表。Perl借取了C、sed、awk、shell 腳本語言以及很多其他程序語言的特性。其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN
Perl它是術語,而不僅僅是簡寫,Perl的創造者,Larry Wall提出第一個,但很快又擴展到第二個。那就是為什麼‘’Perl‘’沒有所有字母都大寫。沒必要爭論哪一個正確,Larry兩個都認可。 [4] 

perl特點

Perl是由Larry Wall設計的,並由他不斷更新和維護的編程語言。
Perl具有高級語言(如C)的強大能力和靈活性。事實上,你將看到,它的許多特性是從C語言中借用來的。
Perl與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程序並告訴Perl來運行而已。這意味着Perl對於小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。
Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。Perl還支持sed到Perl及awk到Perl的翻譯器。
簡而言之,Perl像C一樣強大,像awk、sed等腳本描述語言一樣方便。 [4] 

perl開源

Perl的解釋程序開放源碼的免費軟件,使用Perl不必擔心費用。Perl能在絕大多數操作系統運行,可以方便地向不同操作系統遷移。
Perl是一種能完成任務的語言。從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網絡,特別是程序的語言。這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。 [4] 

perl語法

變量定義,以$號開頭,如:$num =1;
數組定義,以@開頭,如:@array = (1,2,3);
數組元素調用 $array[index],其中index表示數組下標,如上例,$array[0]的值是1
哈希定義,以%開頭,如:%hash=("a",1,"b",2);
哈希調用 %hash,其中key表示鍵,多用字符串表示,注意hash的key必須具有獨一性,但value可以不獨一,為此hash的key經常被用來做獨一化處理,如上例中的"a", "b", values是key對應的值,如1,2。$hash{"b"}的值是2。 [4] 

perl優點

Perl追求的是簡單, 解決一個一般的問題用它幾行代碼就完成了. 一個稍複雜一點的問題代碼也不會超過一屏! 在軟件測試中,Perl通常是非常重要的角色。一般一個測試通用函數庫就要分十幾個文件,甚至更多,包含多達上千個定製功能。而這些函數將在主函數運行時,不定數量的被調用。幾乎可以説,一切自動過程都是由Perl自己完成的,可見其功能的強大和在當今計算機技術高速發展的時期仍然發揮着重要的作用。
Perl最初是當做一種Unix的腳本語言設計的,但是它早就移植到大多數其它操作系統裏了。因為Perl幾乎可以在任何地方運行,所以Perl可以説是當今最具有移植性的編程環境;要想寫可移植的C/C++程序,你得在程序里加上一大堆 #ifdef標籤來區分不同的系統;要想寫可移植的Java程序,你必須理解每種新的Java實現的特質;要想寫可移植的shell,你可能要記住每條命令在每種操作系統上的語法,走運的時候你可能可以找到一些公共的東西;要想寫可移植的Visual Basic程序,需要對‘’移植‘’有個更靈活的定義。
讓我們很高興的是Perl避免了所有這些問題,同時還保留了這些語言中的許多優點,同時還有一些自己的特色。Perl的特色來自許多方面:它的特性集的工具,Perl社區的創造性,以及開源運動的大環境。不過,許多這些特性都是混合的東西;Perl的身世複雜,它總是把事物看成是優點的不同方面,而不是弱點。Perl是‘’背黑鍋我來‘’的語言。如果你覺得自己陷入一團亂麻之中,非常渴望自由,那麼請使用Perl。
Perl是跨文化的。Perl的爆炸性增長很大程度上是因為那些前Unix系統程序員的渴望,他們希望從他們的‘’老家‘’帶着儘可能多的東西。對於他們而言,Perl是可移植的Unix化蒸餾器,是"此路不通"的沙漠中的綠洲。從另外一個角度來看,Perl還可以從另外一個方向運轉:在Windows上工作的web設計者通常會非常開心地發現他們的 Perl程序可以不加修改地在Unix服務器上跑。
儘管Perl在系統程序員和web設計師中間非常流行,但這只是因為是他們最早發現Perl的,Perl可以用於更廣泛的用途。從Perl最早的文本處理語言開始,它已經發展成為一種非常複雜的,通用的編程語言,以及完整的開發環境,包括調試器,調節器,交叉引用,編譯器,庫,語法提示編輯器,以及所有其它‘’真正‘’的編程語言所具有的所有掛勾,只要你需要。當然這些東西都是讓我們可能處理難的問題的東西,而且很多其它語言也可以做到這一點。Perl之所以成為Perl是因為它從來不會因為保持簡單事情簡單化而丟失其他方面的特性。
因為Perl既強大又好用,所以它被廣泛地用於日常生活的方方面面,從宇航工程到分子生物學,從數學到語言學,從圖形處理到文檔處理,從數據庫操作到網絡管理。很多人用Perl進行快速處理那些很難分析或轉換的大批量數據,不管你是處理DNA序列,網頁,還是豬肚皮的未來都無所謂。實際上,在Perl社區有一個笑話就是,下次股市大崩盤就很有可能是哪個傢伙寫的腳本里頭有bug造成的。(不過,樂觀點來看就是,任何還在失業的股票分析師仍然有可以利用的技巧。) [4] 
Perl的成功有許多原因。Perl早在開源軟件的名字出現之前就已經是一個成功的開源項目了。Perl是自由的,並將永遠自由下去。你可以在任何合適的場合使用 Perl,只需要遵守一個非常自由的版權就可以了。如果你在從事商業活動並且還想使用Perl,那麼用就是了。你可以把Perl嵌入到你寫的商業軟件中而不需要支付任何費用也沒有任何限制。如果你碰上一個Perl社區解決不了的問題,那你也還有最後的一招:源程序本身。 Perl社區不會在‘’升級‘’的偽裝下租給你它們的商業秘密。而且Perl社區也不會‘’停業 ‘’,更不會讓你孤立無援。
Perl是自由軟件這一點無疑對它是有幫助的。但這一條並不足以解釋Perl現象,因為許多自由軟件包沒有能繁榮起來。Perl不僅自由;而且好玩。人們覺得自己在Perl裏可以有創造力,因為它們有表達的自由:他們可以選擇是為計算機速度優化還是為程序員的速度優化,是冗長還是簡潔,是選擇可讀性還是可維護性,或者選擇複用性,移植性,接受性和傳授性等等。假如你進入一次模糊的Perl比賽,甚至你還可以為模糊性做優化。
Perl可以給予你所有這些自由,因為它是一門有着分裂人格的語言。Perl同時是很簡單並且很富有的語言。Perl從其它地方拿來好主意,然後把它們安裝到易用的框架裏面。對於只是喜歡她的人來説,Perl是實用抽取和報表語言(Practical Extractoin and Report Language)。對那些熱愛她的人而言,她是變態電子垃圾製造者(Pathologically Electric Rubbish Lister)。在少數人眼裏,Perl是毫無意義的重複練習。不過世界需要一點點冗餘。精簡主義者總是想把事物分隔開。而我們則總是企圖把它們合併到一起。
Perl之所以是簡單的語言是有很多原因的。比如你用不着知道什麼特殊的指令就可以編譯Perl程序--只要把它當做批處理或者 shell腳本執行就可以了。Perl的類型和結構很容易使用和理解。Perl對你的數據沒有任何限制--你的字串和數組可以要多長就多長(只要你有足夠的內存),而且它們都會自動增長。Perl不會強迫你學習新的語法和語意,Perl改從許多其它你已經熟悉的語言裏(比如C, awk, BASIC 和 Python, 英文,希臘語等)借來語法。實際上,任何程序員都可以從書寫良好的Perl代碼段中讀懂它的含義。
最重要的是,你不用先學習所有Perl的東西就可以開始寫有用的程序。你可以寫很小的Perl程序。你也可以象小孩那樣寫Perl程序,保證不會笑話你。或者更準確地説是,絕不會笑話小孩做事情的創造性。Perl裏的許多觀點都是從自然語言中借來的,其中一條最好的觀點就是隻要你能把自己的意思表述清楚,那麼你就可以使用這些語言的一個子集。Perl文化可以接受任何熟練程度的成員。不會在你背後放個語言警察。如果你的老闆不炒你,而且你的Perl腳本也能完成工作,那麼它就是‘’正確‘’的。
儘管Perl很簡單,但它仍然是一種特性很豐富的語言,如果你想用那些特性的話,那你就要學習一些東西。這也是把難題變簡單的學費。雖然你要想把所有Perl能做的事情吸收還需要一些時間,但到你需要這些功能的時候你就會非常開心地發現Perl已經可以做這些事情了。
由於Perl的繼承性,就算它只是用做數據歸納語言的時候也有豐富的特性,Perl一開始就設計成可以瀏覽文件,掃描大量文本並且生成動態數據以及打印出這些數據的良好格式化的報表。不過,隨後 Perl 就開始風行,於是它就成了可以操作文件系統,進程管理,數據庫管理,進行C/S編程和安全編程,web信息管理,甚至可以進行面向對象和麪向功能的編程的語言。而且這些功能並非只是在Perl這邊,每種新功能都和其它東西交流得很好,別忘了Perl從一開始就是設計成膠水語言的。
而且Perl並不僅僅只能黏合它自己的特性。Perl是設計成可以用模塊擴展的語言。你可以用Perl快速設計,編寫,調試和部署Perl應用,並且你還可以在需要的時候很方便地擴展這些應用。你可以在其它語言裏嵌入Perl,而且你也可以在Perl裏嵌入其它語言。通過模塊輸入機制,你可以把這些外部的擴展當做內置於Perl的特性。那些面向對象的外部庫在Perl內部仍然保持面向對象的特徵。
Perl還在許多其它方面協助你。和嚴格的每次執行一條命令的命令文件和shell腳本不同的是,Perl先把你的程序快速編譯成一種內部格式。和其它任何編譯器一樣,這個時候還進行各種優化,同時把碰到的任何問題反饋給你。一旦Perl的編譯器前端對你的程序表示滿意了,它就把這些中間代碼交給解釋器執行(或者是給其它的能生成C或者字節碼的模塊後端)。聽起來挺複雜,不過Perl的編譯器和解釋器幹這些活效率相當高,編譯-運行-修改的過程幾乎都是以秒計。再加上Perl的許多其他開發特性,這種快速的角色轉換很適合做快速原型設計。然後隨着你的程序的成熟,你可以逐步擰緊身上的螺母,減少散漫增強紀律。如果你做得好,Perl也能幫你這個忙。
Perl還可以幫你寫更安全的程序。除了其它語言提供的典型的安全接口之外,Perl還通過一種跟蹤數據的機制給你提供預防意外安全錯誤的保護,這樣就可以在災害發生之前預防其發生。最後,Perl還可以讓你設置一個特殊的防護隔段運行那些來源不明的Perl代碼,以此來杜絕危險操作。
不過,偏執一點兒説,Perl 幫你的大部分內容和Perl本身沒有什麼關係,而是和使用Perl的人有關。坦率地説,Perl社區的人們可以説是地球上最熱心的人了。如果Perl運動裏面有那麼一點點宗教色彩的話,那麼這就是它的核心了。Larry希望Perl社區像一小片天堂那樣運轉,看來他的願望基本上是實現了。也請你為此做出自己的努力。
Perl之所以強大, 是因為有CPAN, CPAN上面有無數的開源模塊, 從科學計算到桌面應用到網絡等等各個方面都有大量的模塊! 並且世界上也還有無數的人在向上面添加模塊! 如果你想要用PERL實現某功能, 不用自己做, 在CPAN上面搜一搜, 多半都會得到已有的結果! CPAN("the Comprehensive Perl Archive Network"全面的Perl存檔網絡)是查找任何Perl有關的東西的中心倉庫。它包含從整個Perl社區收集來的智慧:成百上千的Perl模塊和腳本,相當於好幾本書的文檔,以及整個Perl發佈。如果有東西是用Perl寫的,而且這個東西很有用而且是自由的,那麼它很有可能就在CPAN上。 [4] 

perl缺點

也正是因為Perl的靈活性和‘’過度‘’的冗餘語法,也因此獲得了write-only的‘’美譽‘’,因為許多Perl程序的代碼令人難以閲讀,實現相同功能的程序代碼長度可以相差十倍百倍。但Perl同樣可以將代碼書寫得像Python或Ruby等語言一樣優雅。
很多時候,perl.exe進程會佔用很多的內存空間,雖然只是一時,但是感覺不好。 [4] 
講述了Perl的構成和特點,並且穿插着Perl本身實現的方方面面的設計思想,舉個例子來説就是引入了語言環境的做法,這種語言層次的語言環境讓程序員在寫程序的時候更多地像是在‘’説‘’,而不是在‘’解釋‘’,我甚至可以説理解語言環境是瞭解和掌握Perl的一個關鍵等內容。 [5] 

perl相關文化

時勢造英雄
為了理解Perl為什麼用這樣的樣子定義(或者為什麼不定義成其他的樣子),必須首先明白為什麼會有 Perl。所以,先挖掘一下佈滿塵灰的歷史書....
退回到1986年,Larry是一個系統程序員,在做一個多層安全的廣域網項目的開發。他負責這麼一個系統,這個系統由西海岸的三台VAX和三台sun機器,通過一條加密了的1200波特的串行線路和東海岸類似配置的系統連接組成的,因為Larry的主要工作是支持(他不是該項目的程序員,只是系統專家),所以他就有機會利用他的三種優點(懶惰,不耐心,和狂傲)來開發和提高所有有用的工具——比如rn,patch,和warp。(注:正是在這個時候,Larry被劃入了‘’計算機動物‘’的範疇,這是以那些人的不可遏止的‘’再加一個特性‘’的渴望為基礎評判的,因為這種行為幾乎成了生物必須。畢竟,如果生活就是太複雜的話,難道程序就不會嗎?尤其是想rn這樣的程序,它真是應該當作一個高級的人工智能項目來看待,因為他們就可以為你閲讀新聞。當然,有些人已經在説patch程序太複雜了。)
一天,Larry剛剛把rn撕成碎片,把它一片一片地放在他的目錄裏,大管理員就跑進來説, ‘’Larry,我們需要一個管理配置,用它控制所有六台VAX和六台sun。我們想在一個月裏就要它。你做一個吧!‘’
所以,從不逃避工作的Larry,開始問自己做一個兩個海岸的CM系統的最好的方法是什麼,它必須不用自己從頭開始寫,並且還可以查閲兩個海岸的問題報告以及核准和控制。他想到的答案只有一個詞:B-news。(注:也就是Usenet傳輸軟件的第二種實現。)
Larry着手在這些機器上安裝了新聞軟件並且增加了兩條控制命令:一條‘’append‘’命令用於向現有的文章追加內容,和一條‘’synchronize‘’命令保持兩個海岸的文章數目相同。CM可以用RCS(版本控制系統)做,而核准和控制可以用新聞和rn來做。
然後大管理員讓他生成報告。新聞是在核心機器裏的一個獨立的文件裏維護的,裏面有許多文件間的交叉引用。Larry的第一個反應是‘’用awk。‘’糟糕的是,那個時候的awk無法做到以文件裏的信息為基礎打開和關閉多個文件。Larry不想編寫一個特殊目的的工具。結果就是產生了一種新的語言。
最初這種新的語言並不叫Perl。Larry和他的同事及親友(Dan Faigin,寫這段歷史的人,和Mark Biggar,他的妻弟,在初始設計階段幫了大忙)交換了一大堆名字。實際上Larry考慮並拋棄了字典裏的所有三個或四個字母的單詞。最早的名字是‘’Gloria‘’,以他的寶貝(和老婆)命名。但他很快就發現這樣會產生太多家庭混亂。
然後名字就成了‘’Pearl‘’,它變成了‘’Perl‘’,部分原因是Larry看到另外一種叫PEARL的語言的介紹,但最主要的原因是他懶得總要敲五個鍵。當然,這樣Perl就可以用做一個四字母的詞。(不過,你會注意到,這裏有以前首字縮寫的殘餘: ‘’Practical Extraction And Report Language‘’。)
最早的Perl沒有l那麼多的特性。那時候有模式匹配和文件句柄,有標量,有格式化,但是很少有函數,沒有相關的數組,而且只有一個實現得不怎麼樣的正則表達式,(從rn借來的)。手冊頁也只有15頁。但是Perl比sed和awk快,並且開始在該項目的其他應用裏使用。
但是其他地方又開始需要Larry 了。有一天另外一個大經理來了並且説:‘’Larry,給R&D做支持。‘’並且Larry 説,好吧。他帶上Perl並且很快發現它逐漸成為系統管理的好工具。他借來Henry Spencer漂亮的正則表達式軟件包並且把它變成更有男人味(不過Henry可能不會願意在正餐的時候考慮這些特性。)然後Larry增加了大部分他想要的特性,以及一些別人想要的特性。然後它就把Perl發佈到網絡上。(注:更讓人吃驚的是,他先後工作於噴氣推進實驗室(JPL),然後是NetLabs? 和Seagate之後,仍然不斷髮布新Perl。其他人做了大部分工作,而 Larry假裝為O‘’Reilly & Associates(一個小公司,印刷關於計算機和相關事物的小冊子。)其餘的就是歷史了。(注:而這些東西,是歷史的一個註解。當開始Perl的工作的時候,Larry已經把rn分解成碎片,並且準備做一次全面的重寫。但因為他開始在Perl上幹活,所以Larry沒有再碰rn。它仍然是碎片。有時候Larry説要用Perl重寫rn,但是從來沒當真。)
然後事情的發展就是這樣的:Perl 1.0在1987年十二月十八日發佈;有些人仍然很認真地對待Perl的生日。Perl 2.0在1988年六月發佈,並且Randal Schwartz開始了‘’另外一個Perl黑客‘’的簽名的傳奇。在1989年,Tom Christiansen在巴爾的摩Usenix拿出了第一個公開的Perl教程。1989年十月的Perl 3.0開始,這門語言第一次以 GNU公眾版權(GPL)發佈和分發。
1990年三月,Larry 寫了第一首Perl小詩(見下一節)。然後他和Randal寫了本書的第一版,The Pink Camel;該書在1991年早期發行。然後Perl 4.0就立即發佈了;除GPL之外,它還包括了Artistic License(藝術版權)。
萬眾期待的Perl 5在1994年十月發佈。這是一個完全重寫的Perl版本,它包括對象和模塊。 Perl 5的到來甚至連The Ecomomist雜誌都提到。到了1995年,正式向Perl社區引入CPAN。在1996年,Jon Orwant開始出版The Perl Journal雜誌。在長時間的猜測之後,本書的第二版,The Blue Camel,在那年的年末出版。第一次O‘’Reilly Perl大會(TPC) 1997年夏季在加州San Jose舉行。重大事件幾乎是每天都在發生,所以,關於歷史的其他部分,請檢查CPAST (Comprehensive Perl Arcana Society Tapestry (history.perl. org))上的Perl紀年表。 [5] 
Perl 詩歌
在助手框裏的詩歌的仿製品是在1990年的四月一日愚人節張貼到Usenet上的。不加註釋的把它放在這裏,只是想表示典型的編程語言的隱喻真的是多麼讓人作嘔。對所有有文學價值的東西大概都是這樣的吧。Larry在最初為Perl 3寫的那些‘’Black Perl‘’到了Perl 5不能分析通過之後,真是感覺輕鬆許多。
不過,Larry自己的文集很幸運地被Perl詩歌的王后,Sharon Hopkins的光芒所掩蓋。她寫了相當多的Perl詩歌,以及一些她在1992年Usenet冬季技術大會上拿出來的關於Perl詩歌的文章,標題是‘’Camels and Needles; Computer Poetry Meets the Perl Programming Language‘’。(這篇文章可以在CAPN的misc/poetry. ps找到。)除了是最多產的Perl詩人之外,Sharon還是下面這首詩歌的作者,這首詩是發表得最廣泛的一首,並且曾經在 Economist和Guardian雜誌上刊登: [5] 
#!/usr/bin/perl
APPEAL;
listen (please, please);
open yourself, wide;
join (you, me),
connect (us,together),
tell me.
do something if distressed;
@dawn, dance;
@evening, sing;
read (books,$poems,stories) until peaceful;
study if able;
write me if-you-please;
sort your feelings, reset goals, seek (friends, family, anyone);
do*not*die (like this)
if sin abounds;
keys (hidden), xXyz (locks, doors), tell secrets;
do not, I-beg-you, close them, yet.
accept (yourself, changes),
bind (grief, despair);
require truth, goodness if-you-will, each moment;
select (always), length(of-days)
# listen (a perl poem)
# Sharon Hopkins
# rev. June 19, 1995
Perl Poetry
Article 970 of comp.lang.perl;
Path; jpl-devvax!pl-dexxav!lwall
From; lwall@jpl-dexxav.JPL.NASA. GOV(Larry Wall)
Newsgroups; news.groups,rec.arts.poems,comp.lang.perl
Subject; CALL FOR DISCUSSION; comp.lang.perl.poems
Message-ID; <0401@jpl-devvax.JPL.NASA. GOV>
Date; 1 Apr 90 00;00;00 GMT
Reply-To; lwall@jpl-devvax.JPL.NSAS. GOV(Larry Wall)
Organization; Jet Prepulsion Laboratory, Pasadena, CA
Lines; 61
It has come to my attention that there is a crying need for a place for people to express both their emotional
and technical natures simultaneously. Several people have sent me some items which don‘’t fit into any
newsgroup. Perhaps it‘’s because I recently posted to both comp.lang.perl and to rec.arts.poems, but people
seem to be writing poems in Perl, and they‘’re asking me where they should post them. Here is a sampling;
From a graduate student (in finals week), the following haiku;
study, write, study,
do review (each word) if time。
close book. sleep? what‘’s that?
And someone writing from Fort Lauderdale writes;
sleep, close together,
sort of sin each spring & wait;
50% die
A person who wishes to remain anonymous wrote the following example of "Black Perl". (The Pearl poet
would have been shocked, no doubt.)
BEFOREHAND; close door, each window & exit; wait until time。
open spellbook, study, read (scan, select, tell us);
write it, print the hex while each watches,
reverse its length, write again;
kill spiders, pop them, chop, split, kill them.
unlink arms, shift, wait & listen (listening, wait),
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one;
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill the next sacrifice, each sacrifice,
wait, redo ritual until "all the spirits are pleased";
do it ("as they say")。
do it(*everyone***must***participate***in***forbidden**s*e*x*).
return last victim; package body;
exit crypt (time, times & "half a time") & close it,
select (quickly) & warn your next victim;
AFTERWORDS; tell nobody。
wait, wait until time;
wait until next year, next decade;
sleep, sleep, die yourself,
die at last
I tried that, and it actually parses in Perl. It doesn‘’t appear to do anything useful, however. I think I‘’m glad,
actually... I hereby propose the creation of comp.lang.perl.poems as a place for such items, so we don‘’t clutter
the perl or poems newsgroups with things that may be of interest to neither. Or, alternately, we should
create rec.arts.poems.perl for items such as those above which merely parse, and don‘’t do anything useful。
(There is precedent in rec.arts.poems, after all.) Then also create comp.lang.perl.poems for poems that
actually do something, such as this haiku of my own:
print STDOUT q
Just another Perl hacker,
unless $spring
Larry Wall lwall@jpl-devvax.jpl.nasa. gov [5] 

perl下載安裝

在Linux系統下、大部分類UNIX系統(包括Mac OS X),perl是隨系統安裝的,可在命令行終端輸入命令perl -v,查看版本,對於Windows有兩種版本可用:Strawberry Perl與ActivePerl。 [5] 

perl版本發佈

1987年12月18日,Larry Wall在新聞組comp.sources.misc發佈了Perl腳本語言1.0版,當時他是Unisys公司的一名程序員。Perl借鑑了sh、Awk和Sed等腳本語言的特性,試圖成為一個能簡化報告處理的通用 Unix腳本語言。
Perl 2在1988年發佈,增加了更多特性,擁有更好的正則表達式引擎。Perl 3和Perl 4分別在1989年和1991年發佈,而1994年發佈的Perl 5則是最重要的一個版本,仍在開發中。2000年啓動的Perl 6則完全重寫了Perl,基於不同的原則,開發者決定先制定語言規格。Perl 6的發佈日期被認為是聖誕節,但沒有指定哪一年的聖誕節。Perl 5公佈了16個版本,Perl 5.6在2000年發佈,Perl 5.8的持續開發貫穿了2002-2008年,5.10在2007年發佈,5.12在2010年發佈,此後Perl開始採用每月發佈一個版本,每年發佈一個穩定版本的發佈週期。5.14在2011年發佈,5.16於2012年發佈,5.18於2013年發佈。
2015年12月25日,開發了十多年的Perl 6語言在聖誕節正式發佈。Larry Wall以Perl 6吉祥物Camelia的名義宣佈Perl 6可以在產品中使用,但強調她仍然處於青春期,也就是她有幾分成熟了,但還是會有問題。
(美國)施瓦茨(Randal L.Schwartz) (美國)福瓦(Brian D Foy) (美國) 菲尼克斯(Tom Phoenix) 譯者:盛春
Randal L.Schwartz、brian d foy和DTom Phoenix共同編著了數本Perl編程方面的‘’必讀‘’圖書,包括《Effective Perl Programming》(由Addison—Wesley出版)、《Learning Perl》、《ProgrammingPerl》、《Intermediate Perl》以及《Mastering Perl》(原版均由O’Reilly出版)。 [5] 
參考資料