發新話題

Perl基礎指南

Perl基礎指南

過去十年來,Perl一直是最常用的腳本語言,這為它贏得了「基本網絡語言」的名聲。如果您還未有機會瞭解與Perl有關的一切,這篇指導性的文章就是一個開始。Perl是一種高級編譯程序語言,它建立在C語言、shell腳本語言和awk與sed這類工具之上。它以那些腳本語言的替代產品而設計,並常替代它們而使用。許多社區應用Perl編寫模塊,這進一步擴大了Perl的應用範圍,使其成為幾乎所有領域工具開發的首選語言。

為何使用Perl

它是免費產品:Perl擁有開源許可,試用它完全免費。如果您決定繼續使用它,您或您們公司也不用花一分錢。
它速度很快:雖然Perl比C語言這樣的彙編語言要慢,但運行大多數程序時,它比Python或Ruby這些類似的編譯語言要快,並比對應的shell或awk腳本快得多。
與shell和UNIX自然交互:Perl專為操作系統應用而設計,在Unix中應用它打開文件句柄、設備、重新定位到通道或套接字都十分方便。在Windows中的應用稍微麻煩一些。
正則表達式:在處理文本時,正則表達式是程序員最重要的工具。在Perl中,正則表達式除了是一個庫的一部分外,還是這門語言的基礎。在正則表達式應用的成熟性與簡潔性方面,沒有語言能夠與Perl相媲美。
CPAN——Perl綜合存檔網絡:CPAN存儲了將近2000個Perl模塊、腳本、文件和擴展。它是幾乎各種Perl模塊的中央存儲庫。在Perl中需要任何模塊,都可以在這裡找到。

安裝

如果您應用的是UNIX環境,從腳本的角度看,Perl幾乎無處不在,可能您的操作系統在某個地方已應用了它。多數Linux產品、MacOSX 10.3或更高版本中都自帶了Perl。如果您運行的是Windows操作系統,或由於某種原因沒有Perl,或希望升級到最新版本,都可以在Perl的官方網站下載最新源代碼(C語言)。

Perl網站僅以源格式發佈Perl解釋程序,但如果您沒有C語言編譯器,或者您不希望進行編譯,您可以下載二進制Perl產品" ActivePerl。安裝過程相當簡單,您只需下載安裝器(Windows和OSX基於圖形,UNIX基於文本),並按照提示執行即可。安裝完成後,運行一段簡單的命令進行測試:

perl -le "print 'Hello World';"

如果它返回「Hello World」,則說明安裝成功。否則,請檢查安裝是否成功完成,路徑中是否存在Perl目錄。

Perl基礎

現在一切已經準備妥當,該是時候說明一些簡單的Perl程序了。首先我們說明一個高次冪的例子,這個程序打印x^y:

$x = 7;

$y = 12;

$result = 1;

while ($y > 0) {

$result = $result * $x;

$y--;

}

print $result;

print "n";

運行程序,我們得到下列結果:

% perl pow.pl

13841287201

這個程序連續使用一個while循環將結果與x相乘,每循環一次,y減少1,這樣程序只會運行y次。在Perl 中,標題變量,如數字或字符,被它們前面的美元符號($)等同化,將它們與其它類型區別開來。不過,這個程序並非完全正確,如果我們想計算負次冪,如7^-1,會出現什麼情況呢?如果我們把y變為-1,再運行程序,循環將不會運行,並打印結果為1。這個結果並不正確,所以需要進行一些改變:

$x = 7;

$y = -1;

$result = 1;

if ($y > 0) {

while ($y > 0) {

$result = $result * $x;

$y--;

}

} else {

while ($y < 0) {

$result = $result / $x;

$y++;

}

}

print $result;

print "n";

我們可以用一個if語句對程序進行細分,如果y為正,就運行第一個循環;如果y為負,就運行第二個循環,它進行遞減並向上計數;如果y為零,則結果恆為1。運行這個程序,得到如下結果:

% perl pow.pl

0.142857142857143

當然,Perl不會讓您重寫這樣一個常用的函數,它插入「**」運算符。例如,上面的例子可以簡單寫成:

$x = 7;

$y = -1;

print $x ** $y;

print "n";

總結

現在您已對Perl有了一定瞭解,您下載並安裝了Perl,並嘗試了Perl編程。不過,應用強大的正則表達式處理命令行輸入或文本才是Perl的主要用途。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。