Perl語言簡介

Perl是什麼東西呢? 它是Practical Extraction Report Language等字的縮寫,是一種能掃視任意文字檔,並且能從中取出資訊製成報表的解譯語言(Interpreter)。如果你懂UNIX的話,它的目的就是用來取代UNIX原有的sed、awk與shell script的組合,用來匯集資訊、產生報表的一個工具語言(程式)。Perl的作者是Larry Wall <lwall@netlabs.com>。他曾經貢獻過好幾個很有用的Public Domain程式給大家使用,包括patch和rn。他設計Perl時的哲學是以實用為第一優先(所謂的實用就是語言容易使用、有效率,而且完整),而不是設計一個看起來很漂亮的語言(漂亮就是程式非常的小,語法幽雅,而且只由最少的語法基本元素構成),所以只要你學上手了,你就會深深的喜歡上Perl的實用性和方便性。

Perl包含了C、sed、awk和sh這幾個工具最好的特色,而且主要的語法很接近C語言,對原本熟悉C語言的人來說非常容易上手。就我個人的經驗,除了C以外,如果能再懂shell script的語法是最好不過了,因為Perl中一些符號的使用和shell script是一致的。當然如果又懂得awk和sed那就更好了。Larry Wall說過一句話:「Perl是懶人用的工具」(於我心有戚戚焉^_^)。如果Perl不是比其它語言更好更簡單更容易上手,恐怕很少人願意去學習新的程式語言。

由於Perl的特性,容易處理字串參數的傳遞,自然成了某些特殊用途的新寵,尤其是CGI,彷彿Perl天生是為了CGI而設計的! 事實上CGI本身定義是和使用的程式語言種類無關的,你可以用C、Fortran、甚至Visual Basic、Delphi來寫CGI程式。那為什麼大家現在都採用Perl呢? 原因有下面幾點:



個語言的好壞,我想我們可以從三個方向來看:資料型態(data type)、流程控制敘述(control statements)、特殊功能。

了這麼多Perl的優點,其實Perl也是有缺點的,最令人垢病的就是執行速度。由於Perl是直譯式的程式語言(Interpreter),不需要事先經過編譯(compile),這一點在發展程式初期很有用,程式寫好了就可以直接run了,但缺點是程式執行的速度會變慢,不利於發展大程式或系統程式。不過Perl對上述一般解譯語言的缺點做了一點改良,它在執行時會先載入整個程式碼,並執行初步的compile,包括語法檢查和建立符號表,因此Perl比一般script語言安全而且快多了。但是就我觀察所得,Perl有一些設計實在很浪費記憶體和CPU,似乎Perl並不很在意記憶體和速度,而是以實用性和方便性為優先考量。其實由於硬體技術的進步,對現在來說,記憶體和CPU速度已經不是那麼令人在意,反而程式的安全性和親和性才是考慮的重點,像Microsoft WORD這隻大怪獸一樣,所以對速度要求比較多的玩家,也只有請你多多忍耐了。

而言之,Perl的優點多多,尤其是它優異的處理字串能力,更使它異軍突起,成為CGI程式的新寵,這也是為什麼Perl會流行起來的主要原因。