自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Perl入門之道:執(zhí)行最常見(jiàn)的編程任務(wù)

開發(fā) 后端
文章將介紹Perl的基礎(chǔ)知識(shí),一旦您掌握了Perl的相關(guān)知識(shí),使用起來(lái)就會(huì)非常簡(jiǎn)單。在本文中,我們將首先介紹如何使用Perl執(zhí)行最常見(jiàn)的編程任務(wù)。

Perl是一種非常簡(jiǎn)單、應(yīng)用廣泛且反響很好的腳本語(yǔ)言。它可用于各種任務(wù)(例如,您可以使用它創(chuàng)建DOS批處理文件或C外殼腳本的等效文件),但在網(wǎng)絡(luò)開發(fā)環(huán)境中,它用于開發(fā)CGI腳本。

51CTO推薦閱讀:Perl 6完成處子秀 ***個(gè)可用版本正式發(fā)布

由于Perl是一種腳本語(yǔ)言,所以使用它的一個(gè)好處就是可以分發(fā)程序的源代碼。這就為您提供了學(xué)習(xí)Perl的機(jī)會(huì),您也可以下載和修改數(shù)千個(gè)Perl腳本,以供自己使用。Perl的缺點(diǎn)之一就是,多數(shù)的免費(fèi)代碼都難以理解。這使Perl自身成了一種神秘的語(yǔ)言類型!

本文假定您已經(jīng)知道如何編程(如果您了解C語(yǔ)言,這對(duì)您將非常簡(jiǎn)單)。一旦掌握了有關(guān)Perl的基礎(chǔ)知識(shí),使用起來(lái)就會(huì)非常簡(jiǎn)單。在本文中,我們將首先介紹如何使用Perl執(zhí)行最常見(jiàn)的編程任務(wù)。閱讀本文后,您將可以相對(duì)輕松地編寫自己的Perl腳本,還可以輕松地讀取其他人編寫的含義模糊的腳本,這將是一個(gè)好的開始。

要啟用Perl,您需要有Perl解釋程序。在任何裝有UNIX的計(jì)算機(jī)上,99.99%的都已安裝了Perl解釋程序。在裝有Windows或Mac計(jì)算機(jī)上,您需要下載***的語(yǔ)言版本并將其安裝到計(jì)算機(jī)上。您可從網(wǎng)上輕松下載Perl,并且是免費(fèi)的。

接下來(lái),請(qǐng)確保查看Perl附帶的DOCS目錄,其中會(huì)有類似用戶手冊(cè)的資料。如果您已加載了Perl,請(qǐng)確保已正確設(shè)置了路徑以包含Perl的可執(zhí)行文件。然后,打開文本編輯器并創(chuàng)建一個(gè)文本文件。在文件中,輸入以下行:

  1. print "Hello World!n"; 

將文件命名為“test1.pl”。在命令提示符下鍵入:

  1. perl test1.plPerl 

將運(yùn)行并執(zhí)行文本文件中的代碼。您應(yīng)該會(huì)看到詞語(yǔ)“Hello World!”打印到標(biāo)準(zhǔn)輸出中。正如您所看到的,在Perl中創(chuàng)建和運(yùn)行程序都非常簡(jiǎn)單。(如果使用的是UNIX,您可以在***行中輸入一段注釋,如#!/usr/bin/perl,那么以后您就不需要在命令行鍵入單詞“perl”了。)

print命令會(huì)將內(nèi)容打印到標(biāo)準(zhǔn)輸出中。符號(hào)n是換行符。如果您將測(cè)試程序修改成以下形式會(huì)更清楚(#表示一段注釋):

  1. # Print on two lines   
  2. print "HellonWorld!n"; 

請(qǐng)注意,打印命令知道它應(yīng)該將“n”解釋為換行符而不是文字字符這并不是由于打印命令擁有智能,而是因?yàn)槭褂昧穗p引號(hào)(在Perl中實(shí)際稱為引用)。如果您用單引號(hào)代替雙引號(hào),例如:

  1. print 'HellonWorld!n'; 

則不會(huì)對(duì)字符n進(jìn)行解釋,而是用文字代替。

還有反引號(hào)字符:`。一對(duì)反引號(hào)表示引號(hào)內(nèi)的字符應(yīng)被識(shí)別為一個(gè)操作系統(tǒng)命令,并且該命令與您輸入的命令一并執(zhí)行。如果您試圖將操作系統(tǒng)的命令行操作置于反引號(hào)內(nèi),則將執(zhí)行該命令。例如,在Windows NT系統(tǒng)中,您可以使用:

  1. print 'cmd /c dir'; 

#p#

來(lái)運(yùn)行DIR命令,并可以從當(dāng)前目錄中查看文件列表。Perl語(yǔ)言中的變量非常有趣。Perl變量無(wú)需聲明,用$來(lái)指明即可。例如:

  1. $s = "HellonWorldn";  
  2. $t = 'HellonWorldn';  
  3. print $s, "n", $t; 

或:

  1. $i = 5;  
  2. $j = $i + 5;  
  3. print $i, "t", $i + 1, "t",  $j;  # t = tab 

或:

  1. $a = "Hello ";  
  2. $b = "Worldn";  
  3. $c = $a .$b; # note use of . to concat strings   
  4. print $c;  

由于.表示字符串連接,因此可以估計(jì).= 與 C 語(yǔ)言中的“+=”具有相同的含義。所以,你可以寫成:

  1. $a = "Hello ";  
  2. $b = "Worldn";  
  3. $a .= $b;print $a; 

還可以創(chuàng)建數(shù)組:

  1. @a = ('cat', 'dog', 'eel');  
  2. print @a, "n";  
  3. print $#a, "n";  # The value of the highest index, zero basedprint $a[0], "n";  
  4. print $a[0], $a[1], $a[2], "n"; 

符號(hào)$#表示獲得數(shù)組中的***索引,它等于數(shù)組中元素的編號(hào)減1。像在C語(yǔ)言中一樣,所有數(shù)組的索引都是從零開始的。您也可以創(chuàng)建散列:

  1. %h = ('dog', 'bark', 'cat', 'meow', 'eel', 'zap');  
  2. print "The dog says ", $h{'dog'}; 

該散列中,單詞'bark'和'dog'相關(guān)聯(lián),'meow'和'cat'相關(guān)聯(lián),等等。這個(gè)散列還可以表達(dá)的更具藝術(shù)性:

  1. %h = (  
  2.       dog => 'bark',  
  3.       cat => 'meow',  
  4.       eel => 'zap'  
  5. );  

運(yùn)算符=>引用左邊的字符串,相當(dāng)于一個(gè)逗號(hào)。您可以像在C語(yǔ)言中一樣創(chuàng)建一個(gè)簡(jiǎn)單的for循環(huán)語(yǔ)句:

  1. for ($i = 0; $i < 10; $i++)   
  2. {   
  3.     print $i, "n";   
  4. }  

While語(yǔ)句很簡(jiǎn)單:

  1. $i = 0;   
  2. while ( $i < 10 ) {   
  3.      print $i, "n"; $i++;   
  4. }  

If語(yǔ)句同樣也很簡(jiǎn)單:

  1. for ($i = 0; $i < 10; $i++)   
  2. {   
  3.        if ($i != 5) {  
  4.            print $i, "n";   
  5.        }   
  6. }  

布爾運(yùn)算符的作用與C語(yǔ)言中的相同:

  1. && 表示“和”   
  2. || 表示“或”   
  3. ! 表示“非”  

對(duì)于數(shù)字:

  1. == 表示“等于”   
  2. != 表示“不等于”   
  3. <、<=、> 和 >=(與原意相同)  

#p#

其他:

  1. eq   
  2. ne   
  3. lt   
  4. le   
  5. gt   
  6. ge  

如果有一個(gè)數(shù)組,則您可以使用foreach語(yǔ)句輕松進(jìn)行循環(huán):

  1. @a = ('dog', 'cat', 'eel');   
  2. foreach $b (@a)   
  3. {   
  4.        print $b, "n";   
  5. }  

Foreach語(yǔ)句可以獲取@a數(shù)組中的每個(gè)元素,并將該元素置于$b中,直到@a循環(huán)結(jié)束。使用單詞sub可以創(chuàng)建一個(gè)例行程序。將所有變量傳遞到例行程序中一個(gè)稱為_的數(shù)組。因此,需要運(yùn)行以下代碼:

  1. show ('cat', 'dog', 'eel');  
  2. sub show  
  3. {  
  4.       for ($i = 0; $i <= $#_; $i++)  
  5.       {  
  6.            print $_[$i], "n";  
  7.       }  

請(qǐng)注意,$#將返回?cái)?shù)組的***索引號(hào)(元素的編號(hào)減1),所以$#_表示參數(shù)的編號(hào)減1。如果您喜歡這種運(yùn)算,那么也會(huì)愛(ài)上Perl語(yǔ)言。您可以使用單詞local聲明例行程序中的局部變量,例如:

  1. sub xxx{local ($a, $b, $c)...} 

還可以使用&調(diào)用某個(gè)Perl函數(shù),例如:

  1. &show ('a', 'b', 'c'); 

只有在出現(xiàn)歧義時(shí)才需要使用&符號(hào),但也有一些編程人員一直都使用該符號(hào)。要從例行程序中返回一個(gè)值,需要使用關(guān)鍵詞return。 從STDIN中讀取數(shù)據(jù)要從標(biāo)準(zhǔn)輸入(stdin)中讀取數(shù)據(jù),需要使用STDIN來(lái)處理。例如:

  1. print "Enter high number:";  
  2. $i = ;  
  3. for ($j = 0; $j <= $i; $j++)  
  4. {   
  5.      print $j, "n";  
  6. }  

只要輸入一個(gè)整數(shù),該程序就將會(huì)正常運(yùn)行。 每次讀取一行數(shù)據(jù)。您還可以使用getc讀取一個(gè)字符,例如:

  1. $i = getc(STDIN); 

或使用read語(yǔ)句:

  1. read(STDIN, $i, 1); 

read命令的第三個(gè)參數(shù)中的1是要讀取的輸入數(shù)據(jù)的長(zhǎng)度。

讀取環(huán)境變量

您可以使用PERL定義一個(gè)名為ENV的全局散列,它可用來(lái)檢索環(huán)境變量的值。例如:

  1. print $ENV{'PATH'}; 

讀取命令行參數(shù)

您可以使用PERL定義一個(gè)全局?jǐn)?shù)組ARGV,其中包含所有傳遞給腳本的命令行參數(shù)。$#ARGV是傳遞的自變量的編號(hào)減1,$ARGV[0]是***個(gè)被傳遞的自變量,$ARGV[1]是第二個(gè)被傳遞的自變量,依此類推。

作者:Marshall Brain

原文鏈接:http://computer.bowenwang.com.cn/perl.htm

【編輯推薦】

  1. 常用Perl命令行參數(shù)應(yīng)用分析
  2. Perl多進(jìn)程及其和多線程的關(guān)系解析
  3. Perl函數(shù)參數(shù)中傳遞數(shù)組和引用的使用
  4. Perl語(yǔ)言中三大概念解析
  5. 專家推薦 Perl函數(shù)手冊(cè)之入門篇

 

責(zé)任編輯:王曉東 來(lái)源: 博聞網(wǎng)
相關(guān)推薦

2010-07-16 17:23:57

Perl面向?qū)ο缶幊?/a>

2021-04-04 22:31:56

Python編程模塊

2009-11-18 09:52:21

Oracle密碼驗(yàn)證

2020-08-17 15:45:33

PDF Mix TooPDFLinux

2017-07-20 21:06:44

PythonExcelSQL

2023-10-24 06:59:17

2023-02-03 16:16:34

物聯(lián)網(wǎng)

2022-02-22 19:04:01

Perl編程語(yǔ)言

2010-07-20 16:13:25

Perl線程

2010-07-23 14:12:14

Perl Hash

2010-07-26 14:45:17

Perl Hash

2010-07-21 09:10:02

Perl常見(jiàn)問(wèn)題

2020-05-29 14:30:35

Kubernetes開發(fā)錯(cuò)誤

2020-09-09 12:59:26

藍(lán)屏驅(qū)動(dòng)內(nèi)存

2024-01-23 16:54:38

2010-07-20 13:32:25

Perl編程格式

2022-08-03 13:47:58

漏洞物聯(lián)網(wǎng)

2019-11-12 16:34:12

網(wǎng)絡(luò)安全軟件技術(shù)

2020-12-18 10:04:52

API漏洞應(yīng)用程序編程接口

2015-07-29 10:46:20

Java錯(cuò)誤
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)