Perl入門之道:執行最常見的編程任務
Perl是一種非常簡單、應用廣泛且反響很好的腳本語言。它可用于各種任務(例如,您可以使用它創建DOS批處理文件或C外殼腳本的等效文件),但在網絡開發環境中,它用于開發CGI腳本。
51CTO推薦閱讀:Perl 6完成處子秀 ***個可用版本正式發布
由于Perl是一種腳本語言,所以使用它的一個好處就是可以分發程序的源代碼。這就為您提供了學習Perl的機會,您也可以下載和修改數千個Perl腳本,以供自己使用。Perl的缺點之一就是,多數的免費代碼都難以理解。這使Perl自身成了一種神秘的語言類型!
本文假定您已經知道如何編程(如果您了解C語言,這對您將非常簡單)。一旦掌握了有關Perl的基礎知識,使用起來就會非常簡單。在本文中,我們將首先介紹如何使用Perl執行最常見的編程任務。閱讀本文后,您將可以相對輕松地編寫自己的Perl腳本,還可以輕松地讀取其他人編寫的含義模糊的腳本,這將是一個好的開始。
要啟用Perl,您需要有Perl解釋程序。在任何裝有UNIX的計算機上,99.99%的都已安裝了Perl解釋程序。在裝有Windows或Mac計算機上,您需要下載***的語言版本并將其安裝到計算機上。您可從網上輕松下載Perl,并且是免費的。
接下來,請確保查看Perl附帶的DOCS目錄,其中會有類似用戶手冊的資料。如果您已加載了Perl,請確保已正確設置了路徑以包含Perl的可執行文件。然后,打開文本編輯器并創建一個文本文件。在文件中,輸入以下行:
- print "Hello World!n";
將文件命名為“test1.pl”。在命令提示符下鍵入:
- perl test1.plPerl
將運行并執行文本文件中的代碼。您應該會看到詞語“Hello World!”打印到標準輸出中。正如您所看到的,在Perl中創建和運行程序都非常簡單。(如果使用的是UNIX,您可以在***行中輸入一段注釋,如#!/usr/bin/perl,那么以后您就不需要在命令行鍵入單詞“perl”了。)
print命令會將內容打印到標準輸出中。符號n是換行符。如果您將測試程序修改成以下形式會更清楚(#表示一段注釋):
- # Print on two lines
- print "HellonWorld!n";
請注意,打印命令知道它應該將“n”解釋為換行符而不是文字字符這并不是由于打印命令擁有智能,而是因為使用了雙引號(在Perl中實際稱為引用)。如果您用單引號代替雙引號,例如:
- print 'HellonWorld!n';
則不會對字符n進行解釋,而是用文字代替。
還有反引號字符:`。一對反引號表示引號內的字符應被識別為一個操作系統命令,并且該命令與您輸入的命令一并執行。如果您試圖將操作系統的命令行操作置于反引號內,則將執行該命令。例如,在Windows NT系統中,您可以使用:
- print 'cmd /c dir';
#p#
來運行DIR命令,并可以從當前目錄中查看文件列表。Perl語言中的變量非常有趣。Perl變量無需聲明,用$來指明即可。例如:
- $s = "HellonWorldn";
- $t = 'HellonWorldn';
- print $s, "n", $t;
或:
- $i = 5;
- $j = $i + 5;
- print $i, "t", $i + 1, "t", $j; # t = tab
或:
- $a = "Hello ";
- $b = "Worldn";
- $c = $a .$b; # note use of . to concat strings
- print $c;
由于.表示字符串連接,因此可以估計.= 與 C 語言中的“+=”具有相同的含義。所以,你可以寫成:
- $a = "Hello ";
- $b = "Worldn";
- $a .= $b;print $a;
還可以創建數組:
- @a = ('cat', 'dog', 'eel');
- print @a, "n";
- print $#a, "n"; # The value of the highest index, zero basedprint $a[0], "n";
- print $a[0], $a[1], $a[2], "n";
符號$#表示獲得數組中的***索引,它等于數組中元素的編號減1。像在C語言中一樣,所有數組的索引都是從零開始的。您也可以創建散列:
- %h = ('dog', 'bark', 'cat', 'meow', 'eel', 'zap');
- print "The dog says ", $h{'dog'};
該散列中,單詞'bark'和'dog'相關聯,'meow'和'cat'相關聯,等等。這個散列還可以表達的更具藝術性:
- %h = (
- dog => 'bark',
- cat => 'meow',
- eel => 'zap'
- );
運算符=>引用左邊的字符串,相當于一個逗號。您可以像在C語言中一樣創建一個簡單的for循環語句:
- for ($i = 0; $i < 10; $i++)
- {
- print $i, "n";
- }
While語句很簡單:
- $i = 0;
- while ( $i < 10 ) {
- print $i, "n"; $i++;
- }
If語句同樣也很簡單:
- for ($i = 0; $i < 10; $i++)
- {
- if ($i != 5) {
- print $i, "n";
- }
- }
布爾運算符的作用與C語言中的相同:
- && 表示“和”
- || 表示“或”
- ! 表示“非”
對于數字:
- == 表示“等于”
- != 表示“不等于”
- <、<=、> 和 >=(與原意相同)
#p#
其他:
- eq
- ne
- lt
- le
- gt
- ge
如果有一個數組,則您可以使用foreach語句輕松進行循環:
- @a = ('dog', 'cat', 'eel');
- foreach $b (@a)
- {
- print $b, "n";
- }
Foreach語句可以獲取@a數組中的每個元素,并將該元素置于$b中,直到@a循環結束。使用單詞sub可以創建一個例行程序。將所有變量傳遞到例行程序中一個稱為_的數組。因此,需要運行以下代碼:
- show ('cat', 'dog', 'eel');
- sub show
- {
- for ($i = 0; $i <= $#_; $i++)
- {
- print $_[$i], "n";
- }
- }
請注意,$#將返回數組的***索引號(元素的編號減1),所以$#_表示參數的編號減1。如果您喜歡這種運算,那么也會愛上Perl語言。您可以使用單詞local聲明例行程序中的局部變量,例如:
- sub xxx{local ($a, $b, $c)...}
還可以使用&調用某個Perl函數,例如:
- &show ('a', 'b', 'c');
只有在出現歧義時才需要使用&符號,但也有一些編程人員一直都使用該符號。要從例行程序中返回一個值,需要使用關鍵詞return。 從STDIN中讀取數據要從標準輸入(stdin)中讀取數據,需要使用STDIN來處理。例如:
- print "Enter high number:";
- $i = ;
- for ($j = 0; $j <= $i; $j++)
- {
- print $j, "n";
- }
只要輸入一個整數,該程序就將會正常運行。 每次讀取一行數據。您還可以使用getc讀取一個字符,例如:
- $i = getc(STDIN);
或使用read語句:
- read(STDIN, $i, 1);
read命令的第三個參數中的1是要讀取的輸入數據的長度。
讀取環境變量
您可以使用PERL定義一個名為ENV的全局散列,它可用來檢索環境變量的值。例如:
- print $ENV{'PATH'};
讀取命令行參數
您可以使用PERL定義一個全局數組ARGV,其中包含所有傳遞給腳本的命令行參數。$#ARGV是傳遞的自變量的編號減1,$ARGV[0]是***個被傳遞的自變量,$ARGV[1]是第二個被傳遞的自變量,依此類推。
作者:Marshall Brain
原文鏈接:http://computer.bowenwang.com.cn/perl.htm
【編輯推薦】