什麼是Perl?

來源:互聯網
上載者:User

Perl是我接觸的第一個動態指令碼語言,但其實上它的資曆已經可以作為其它語言的祖母了,1987年,Larry Wall發布了Perl。那已經是20年前的事情了。在電腦世界,20年的時間已經好像是2個世紀以前那麼久遠了。下面列了一些常見的動態指令碼語言的發布日期:

語言 發明人 發布時間
Perl Larry Wall 1987
python Guido van Rossum 1989
ruby 松本行弘 1993
php Rasmus Lerdorf 1994
lua 3位巴西人 1993

還有很多的動態指令碼語言沒有在上面列出,動態指令碼語言確實是一個龐大的家族。那麼問題是:為什麼會有這麼多的動態指令碼語言?其實答案非常的簡單:因為有更多的特殊需求。每種動態語言實際上都是因為某種特定的需求而誕生和進化的,沒有那種語言可以完全替代另一種。追求一種無所不能的語言實際上是相當錯誤的,這就如同說“一個人能夠適合世界上所有的工作”,這有些自大的可笑了。實際上,只要這個世界存在著文化的差異,存在著審美的差異,各種電腦語言就一定是共存的。

對於不同的電腦語言,我想至少有兩種觀點是值得欣賞的:

  • 解決問題需要最合適的工具,如果你的工具箱裡只有一,兩把工具,那麼你能夠解決的問題就是很有限的
  • 語言沒有高低貴賤之分,學習一門語言如果交一個朋友,首先你要學會尊重他們,其次你要瞭解他最大的優勢是什麼

好了,我無意陷入各種語言之間的誰是誰非的閑言碎語中去,還是回到Perl語言本身上來吧。關於Perl語言,它最大的特點是什麼呢?我認為應該是它的背景。Perl語言的發明者是一名語言學家,因此Perl語言也在很大程度上打上了人類語言的烙印:

  • Perl語言的冗餘性高,冗餘性高是人類語言的特點,這樣即使偶爾的失真也可以完整的表達語言的含義。一般電腦語言更傾向於簡單直接的方式,從這個意義上說Perl語言是一個異類,它追求的是所謂“條條大路通羅馬”,完成同一件事情可以有各種各樣的方法,而且根本就沒有所謂的最佳方法。這也同時造成了Perl代碼因為彼此風格差異太大而很難互相看懂的弊端。但是沒有人會否認,Perl也能寫出很清晰的代碼來,說到底,問題的關鍵其實不在於語言本身,而在於程式員的不同審美趣味。
  • Perl語言的上下文環境,人類語言是依賴於上下文環境的,有時候省略了主語或賓語也不會造成理解的困難。一般電腦語言往往極力排斥這種做法,因為這往往造成代碼的難以維護,從這個意義上說,Perl語言其實不適合大規模的軟體開發。
  • Perl語言的單數複數,正如英語中有單數和複數的單詞區別一樣,Perl語言用$標識單數變數,用@標識複數變數,用%標識散列,這些奇形怪狀的符號更加增加了Perl代碼的理解難度,如果天書一樣。
  • Perl語言的用途,Perl這個名詞的真正含義其實是有些學術化的“實用報表提取語言”(PracticalExtraction andReportLanguage),但是很快就有人稱它為“病態折中垃圾列表器”(Pathologically Eclectic Rubbish Lister)。可是無論如何,如果說還有一種象詩歌一樣的電腦語言,那麼一定是Perl。實際上,它的設計初衷也正是為了處理形形色色的文本。

總結一下,Perl語言是有些過於靈活和浪漫了,就象一個詩人,喜歡在自己的小圈子裡淺吟低唱。他根本不適合大規模的編碼模式,那根本不符合他的個性(如果你非要這樣做,你就要自己承擔一切後果)。但是如果你僅僅把他當作一個可愛的朋友,那麼你一定會從他那裡得到別樣的體會。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.