10步學習Perl 第一課

arron86發表於2011-06-06

【翻譯】 送給不願意讀英文的人(若有翻譯不到位還請多多見諒)

參考原文:http://www.linuxforums.org/articles/learn-perl-in-10-easy-lessons-lesson-1_120.html

 

10步學習Perl 第一課

感謝Perl指令碼語言,使我們能夠將Linux系統上各種工作自動化。學習Perl既簡單又有趣,並且很快你將能夠寫出讓我們生活變得更加方便的指令碼。這裡將從基礎講起,然後循序漸進的介紹複雜的概念以及高階技術。

我將盡可能多的進行解釋,所以,不管你有沒有程式設計經驗,學習起來應該都比較容易。在這一系列課程完成的時候,你會感覺比較順手。

Perl的歷史

Larry Wall1987年創造了一個叫做“Practical Extraction and Report Language”的指令碼語言。她被設計為一個UNIX平臺的文字處理語言。當時存在許多工具和語言(Unix shells,sed,awk,C...等等),程式設計師通常混合使用它們已達到自己的目標。Larry Wall想讓Perl成為一種包含文字處理相關所有方面和功能的通用語言,不需要混合使用其他的工具就能很好的完成想要的功能。並且他還想將Perl設計成一個使用起來簡單並且很容易上手的語言。適度忽略了計算機底層的東西,使開發者能夠將思考的中心放在所需要的程式邏輯上。

Perl是前所未有的,她填補了一項空白,因此迅速流行起來。1994年,隨著Perl 5的釋出,她真正成為了一個穩固的通用程式語言。

Perl的亮點

Perl真的是獨一無二的。隨著我們的學習,你可能就會看到她的不同特性了。Larry Wall在打造Perl時運用了其大量的語言功底,有人甚至認為Perl簡直就是自然語言。她有豐富的詞彙和寬鬆的語法,Perl開發者通常會說“有不止一種方法可以實現它”。你可以有自己的指令碼編寫風格,有些人甚至可以用Perl來寫詩:)。正因為如此,有些Perl指令碼可讀性變得不高。雖然如此,寫起Perl指令碼來還是非常享受的。

Perl直譯器

Perl是一種解釋性語言,這就是說是用Perl編寫的指令碼需要呼叫Perl直譯器才能夠執行。例如,你寫了一個叫做myScript.pl的指令碼(.pl通常被用作Perl指令碼副檔名),它是不能被直接執行的。需要呼叫一個編譯器去執行它:

Perl myScript.pl

這個例子中,myScript.pl 是你的Perl指令碼,perlPerl直譯器。

Perl直譯器的安裝

Perl 直譯器是一個必備的工具,在大多數GNU/Linux平臺上都會預設安裝。例如,下面列出的這些就包含perl的最近更新的版本。

· Suse 10.1

· Fedora Core 5

· Debian Testing

· Ubuntu 5.10

· Mandriva 2006

· Slackware 10.2

· Mepis 3.4-3

· Gentoo 2006.0

· Knoppix 5.0

如果想獲得更詳盡的關於那些分發版本包含有perl的話,可以從以下網站中搜尋distrowatch.com 

 http://distrowatch.com/search.php?pkg=perl&pkgver=5.8.8#pkgsearch 

當安裝好直譯器後,你可以在終端輸入Perl -v 來驗證是否裝成功或檢視版本。如果安裝成功了,應用上面的命令就會顯示所安裝perl的版本資訊(window同樣可以可以在command視窗中驗證,當然是你事先安裝了perl直譯器 --Arron)。如果你發現perl沒有預設的安裝在你的系統中,你可以通過包管理器(package Manger)進行安裝。 就是簡單的在系統的庫中(distribution's repository)找到並安裝。畢竟Perl是個必備工具,它應該預設的包含在你的系統的庫中並被更新。可以參考如下網站 :http://www.cpan.org/ports/#linux 

如果在window環境下,通常不會預設安裝perl直譯器,需要我們自己安裝,但在windows環境下安裝應該就沒有什麼難度可言了吧。 Arron :)

隱式呼叫Perl直譯器

Perl直譯器通常被用來執行寫在檔案中的Perl指令碼。Perl也支援互動模式,在這種模式下你可以隨意輸入perl命令而不需要任何引數。當然,在本節中我們將重點放在寫在檔案中的指令碼上。

執行一個perl指令碼,你可以呼叫perl編譯器,將指令碼檔案作為一個引數:

Perl myScript.pl

...... 或者你可以告訴Perl指令碼編譯器在哪裡,並且將指令碼設定為可執行。這是程式設計者的習慣做法,並且鼓勵你這麼去做。指令碼檔案中第一行告知shell如何去解釋這個檔案。這一行基本上就是給出Perl直譯器在路徑:

#!/usr/bin/perl

Note: 通常Perl直譯器安裝在/usr/bin目錄下,但也許你的系統會有所不同。可以通過 which perl 命令去檢視。

     為確保你的Perl指令碼處於可執行狀態和正確的許可權下,可以執行如下命令: chmod a+rx myScript.pl

一旦指令碼處於可執行狀態,它就能被直接執行。Shell檢視指令碼的第一行(以#!開頭),接下來就會根據提供的路徑找到直譯器執行指令碼中剩下的行。其實,我們感謝於此,使我們能直接執行我們的指令碼。

./myScript.pl

雖然在此看來你沒有顯式的呼叫解釋去,不要忘了其實是shell替你做了這一步,歸根到底還是直譯器在執行你的指令碼。

你的第一個Perl 指令碼

現在你已經為你的perl指令碼做好了準備:

一個簡單的在螢幕上顯式“Hello Worl!”的指令碼。(可能這個用處不大,但這或多或少的也成了學習一個新語言的慣例了,所以就讓我們開始編寫“Hello World”吧。 :))

建立一個名為 hellowWorld.pl的檔案,並鍵入如下命令並儲存。

#!/usr/bin/perl

Print "Hello World! \n";

整改檔案為可執行狀態

Chmod a+rx helloWorld.pl

執行指令碼

./helloWorld.pl

如你所望,“Hello World!”列印到螢幕上。這個指令碼只包含兩行,非常容易理解。第一行很簡單,它告訴shell在哪裡能找到Perl直譯器。第二行是指令碼中僅有的Perl指令碼語句,它告訴直譯器列印“Hello World!”到螢幕上。在Perl指令碼中,每個語句結束時用“分號”分隔。如果你剛剛開始程式設計,也許你還忘記,所以注意這一點。用分號做為分隔符的原因是,一個語句可能很長,會佔用幾行,這樣用分號來分隔就變成一個有效途徑了。其實在很多程式中,都用“分號”做為語句的分隔符,用起來會很自然。你也許也很想知道那個“n”是做什麼用的。它是一個特殊轉義符號,與回車想對應。當應用它時,在輸出“Hello World!”後,游標會跳到下一行。

在下一講中,我們將開始應用變數,操作檔案等,這些在以後都會派上用場。現在,你知道什麼是Perl了,也知道怎麼樣用了,我們將開始將重點移到語言本身上來。

當然,同時我將很樂意回答你們提出的問題 :)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20936835/viewspace-697212/,如需轉載,請註明出處,否則將追究法律責任。

相關文章