Perl - MBA智库百科

文章推薦指數: 80 %
投票人數:10人

Perl借取了C、sed、awk、shell 腳本語言以及很多其他程式語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。

簡而言之,Perl像C ... Perl 用手机看条目 扫一扫,手机看条目 出自MBA智库百科(https://wiki.mbalib.com/) 目錄 1什麼是perl 2Perl的歷史 3Perl的基本信息 4Perl編程語言 4.1特點 4.2基本語法 4.3優點 4.4缺點 5相關條目 [編輯]什麼是perl   Perl,一種功能豐富的電腦程式語言,運行在超過100種電腦平臺上,適用廣泛,從大型機到便攜設備,從快速原型創建到大規模可擴展開發。

  Perl最初的設計者為拉里·沃爾(LarryWall),於1987年12月18日發表。

現在的版本為Perl6,於2015年12月25日更新。

  Perl借取了C、sed、awk、shell腳本語言以及很多其他程式語言的特性,其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。

簡而言之,Perl像C一樣強大,像awk、sed等腳本描述語言一樣方便,被Perl語言愛好者稱之為“一種擁有各種語言功能的夢幻腳本語言”、“Unix中的王牌工具”。

  Perl一般被稱為“實用報表提取語言”(PracticalExtractionandReportLanguage),你也可能看到“perl”,所有的字母都是小寫的。

一般,“Perl”,有大寫的P,是指語言本身,而“perl”,小寫的p,是指程式運行的解釋器。

  中文名實際抽取與彙報語言外文名Perl(PracticalExtractionandReportingLanguage)設計者拉里·沃爾設計時間1987年12月18日借取程式語言C、awk、shellscripting等 [編輯]Perl的歷史   1987年LarryWall發佈Perl1.0以來,用戶數一直急劇增加,同時越來越多的程式員與軟體開發者(商)參與Perl的開發。

從最初被當做一種跨平臺環境中書寫可移植工具的高級語言開始,Perl被廣泛地認為是一種工業級的強大工具,可以在任何地方用來完成你的工作。

perl的前身是Unix系統管理的一個工具,被用在無數的小任務里。

後逐漸發展成為一種功能強大的程式設計語言,用作Web編程、資料庫處理、XML處理以及系統管理;在完成這些工作時,同時仍能處理日常細小工作,這是它的設計初衷。

Perl特別適合系統管理和Web編程。

實際上已經被用在所有Unix(包括Linux)捆綁在一起作為標準部件發佈,同時也用於MicrosoftWindows和幾乎所有操作系統。

Perl的應用非常廣泛。

[編輯]Perl的基本信息   Perl最初的設計者為拉里·沃爾(LarryWall),他於1987年12月18日發表。

Perl借取了C、sed、awk、shell腳本語言以及很多其他程式語言的特性。

其中最重要的特性是它內部集成了正則表達式的功能,以及巨大的第三方代碼庫CPAN。

  Perl被稱為“實用報表提取語言”(PracticalExtractionandReportLanguage)。

它是術語,而不僅僅是簡寫,Perl的創造者,LarryWall提出第一個,但很快又擴展到第二個。

那就是為什麼“Perl”沒有所有字母都大寫。

沒必要爭論哪一個正確,Larry兩個都認可。

[編輯]Perl編程語言   Perl是由LarryWall設計的,並由他不斷更新和維護的編程語言。

  Perl具有高級語言(如C)的強大能力和靈活性。

事實上,你將看到,它的許多特性是從C語言中借用來的。

  Perl與腳本語言一樣,Perl不需要編譯器和鏈接器來運行代碼,你要做的只是寫出程式並告訴Perl來運行而已。

這意味著Perl對於小的編程問題的快速解決方案和為大型事件創建原型來測試潛在的解決方案是十分理想的。

  Perl提供腳本語言(如sed和awk)的所有功能,還具有它們所不具備的很多功能。

Perl還支持sed到Perl及awk到Perl的翻譯器。

  簡而言之,Perl像C一樣強大,像awk、sed等腳本描述語言一樣方便。

[編輯]特點   Perl的解釋程式是開放源碼的免費軟體,使用Perl不必擔心費用。

Perl能在絕大多數操作系統運行,可以方便地向不同操作系統遷移。

  Perl是一種能完成任務的語言。

從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。

它可以很容易操作數字,文本,文件和目錄,電腦和網路,特別是程式的語言。

這種語言應該很容易運行外部的程式並且掃描這些程式的輸出獲取感興趣的東西。

而且它還應該很容易能把這些你感興趣的東西交給其它程式做特殊的處理。

當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。

[編輯]基本語法 變數定義,以$號開頭,如:$num=1; 數組定義,以@開頭,如:@array=(1,2,3);數組元素調用$array[index],其中index表示數組下標,如上例,$array[0]的值是1 散列定義,以%開頭,如:%hash=("a",1,"b",2);散列調用%hash,其中keys表示鍵值,多用字元串表示,註意hash的key必須具有唯一性,但value可以不唯一,為此hash的key經常被用來做唯一化處理,如上例中的"a","b",values是keys對應的值,如1,2。

$hash{"b"}的值是2。

[編輯]優點   Perl追求的是簡單,解決一個一般的問題用它幾行代碼就完成了。

一個稍複雜一點的問題代碼也不會超過一屏!在軟體測試中,Perl通常是非常重要的角色。

一般一個測試通用函數庫就要分十幾個文件,甚至更多,包含多達上千個定製功能。

而這些函數將在主函數運行時,不定數量的被調用。

幾乎可以說,一切自動過程都是由Perl自己完成的,可見其功能的強大和在當今電腦技術高速發展的時期仍然發揮著重要的作用。

  Perl最初是當做一種Unix的腳本語言設計的,但是它早就移植到大多數其它操作系統里了。

因為Perl幾乎可以在任何地方運行,所以Perl可以說是當今最具有移植性的編程環境;要想寫可移植的C/C++程式,你得在程式裡加上一大堆#ifdef標簽來區分不同的系統;要想寫可移植的Java程式,你必須理解每種新的Java實現的特質;要想寫可移植的shell,你可能要記住每條命令在每種操作系統上的語法,走運的時候你可能可以找到一些公共的東西;要想寫可移植的VisualBasic程式,需要對“移植”有個更靈活的定義。

  讓我們很高興的是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造成的。

(不過,樂觀點來看就是,任何還在失業的股票分析師仍然有可以利用的技巧。

)   Perl的成功有許多原因。

Perl早在開源軟體的名字出現之前就已經是一個成功的開源項目了。

Perl是自由的,並將永遠自由下去。

你可以在任何合適的場合使用Perl,只需要遵守一個非常自由的版權就可以了。

如果你在從事商業活動並且還想使用Perl,那麼用就是了。

你可以把Perl嵌入到你寫的商業軟體中而不需要支付任何費用也沒有任何限制。

如果你碰上一個Perl社區解決不了的問題,那你也還有最後的一招:源程式本身。

Perl社區不會在“升級”的偽裝下租給你它們的商業秘密。

而且Perl社區也不會“停業”,更不會讓你孤立無援。

  Perl是自由軟體這一點無疑對它是有幫助的。

但這一條並不足以解釋Perl現象,因為許多自由軟體包沒有能繁榮起來。

Perl不僅自由;而且好玩。

人們覺得自己在Perl里可以有創造力,因為它們有表達的自由:他們可以選擇是為電腦速度優化還是為程式員的速度優化,是冗長還是簡潔,是選擇可讀性還是可維護性,或者選擇復用性,移植性,接受性和傳授性等等。

假如你進入一次模糊的Perl比賽,甚至你還可以為模糊性做優化。

  Perl可以給予你所有這些自由,因為它是一門有著分裂人格的語言。

Perl同時是很簡單並且很富有的語言。

Perl從其它地方拿來好主意,然後把它們安裝到易用的框架裡面。

對於只是喜歡她的人來說,Perl是實用抽取和報表語言(PracticalExtractoinandReportLanguage)。

對那些熱愛她的人而言,她是變態電子垃圾製造者(PathologicallyElectricRubbishLister)。

在少數人眼裡,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("theComprehensivePerlArchiveNetwork"全面的Perl存檔網路)是查找任何Perl有關的東西的中心倉庫。

它包含從整個Perl社區收集來的智慧:成百上千的Perl模塊和腳本,相當於好幾本書的文檔,以及整個Perl發佈。

如果有東西是用Perl寫的,而且這個東西很有用而且是自由的,那麼它很有可能就在CPAN上。

[編輯]缺點   也正是因為Perl的靈活性和“過度”的冗餘語法,也因此獲得了write-only的“美譽”,因為許多Perl程式的代碼令人難以閱讀,實現相同功能的程式代碼長度可以相差十倍百倍。

但Perl同樣可以將代碼書寫得像Python或Ruby等語言一樣優雅。

  很多時候,perl.exe進程會占用很多的記憶體空間,雖然只是一時,但是感覺不好。

[編輯]相關條目 C語言 C++ Java Python 取自"https://wiki.mbalib.com/zh-tw/Perl" 本條目對我有幫助0 赏 MBA智库APP 扫一扫,下载MBA智库APP 分享到: 下载MBA智库,阅读全文 温馨提示 复制该内容请前往MBA智库App 立即前往App   如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目或投訴舉報。

本條目相關文檔  Perl在電信網管的簡單應用19頁 Perl開發崗位職責範本2頁 Perl基礎教程精華版51頁 Perl在電子商務平臺的主要應用26頁 中國移動-Perl在電信網管的簡單應用19頁 更多相關文檔 本条目相关课程 本条目由以下用户参与贡献 刘维燎,苏青荇. 頁面分類:電腦 評論(共0條)提示:評論內容為網友針對條目"Perl"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

导航 首页 文档 百科 课堂 商学院 资讯 国际MBA 商城 企业服务 個人工具 用戶登錄創建新帳號 打开APP 搜索   全球专业中文经管百科,由121,994位网友共同编写而成,共计432,753个条目   首页   管理   营销   经济   金融   人力资源   咨询   财务   品牌   证券   物流   贸易   商学院   法律   人物   分类索引   查看 條目討論編輯收藏 简体中文繁体中文 工具▼ 鏈入頁面 鏈出更改 上載文件 特殊頁面 可列印版 永久链接 導航 最新資訊 最新评论 最新推荐 热门推荐 编辑实验 使用帮助 创建条目 随便看看 馬斯洛人類需求五層次理論INFPENFP康波周期ISTP(人格特質理論)ISFP波特五力分析模型INTJ焦慮型依戀INFJ 奶頭樂理論蘑菇管理定律猴子管理法則情緒ABC理論垃圾人定律100個最流行的管理辭彙破窗效應21天效應SWOT分析模型墨菲定律 以上内容根据网友推荐自动排序生成 最後更改15:32,2016年12月1日. 智库首页- 百科首页- 关于百科- 客户端- 人才招聘- 广告合作- 权利通知- 联系我们- 免责声明 -友情链接 ©2022MBAlib.com,Allrightsreserved. 闽公网安备35020302032707号 问题分类 类型 反馈内容 添加图片(选填)0/9 联系方式 取消 提交 提交成功 反馈结果请前往MBA智库App查看(我的>帮助与反馈>我的反馈) 知道了



請為這篇文章評分?