1. 程式人生 > >perl學習(4)正則表達式處理文本

perl學習(4)正則表達式處理文本

接收 沒有 per tdi 自動 int con class 開頭

一:  進行本章學習前的一些知識儲備

1:  Perl最喜歡用的默認變量:$_(摘於perl語言入門78頁)

   假如在foreach循環開頭省略空置變量,Perl就會用它最喜歡的默認變量$_。

   eg: foreach(1..19) { #默認會用$_作為控制變量

     print "Ican count to $_\n";

}

   當未告知perl使用哪個變量或數值時,perl就會自動使用$_,從而使程序員免於命名和鍵入新變量的痛苦。

2:  處理命令行參數 #出處:p108    

    

這個數組是由 Perl解釋器事先建立的特殊數組,其內容就是由命令行參數組成的列表。換句話說,它和別的數組沒有不同(除了奇怪的全大寫名稱之 外) ,只不過在程序開始運行時, @ARGV裏就已經塞滿了調用參數.

    @ARGV首先是一個數組,不管腳本裏有沒有把它寫出來,它始終是存在的。@ARGV是Perl默認用來接收參數的數組,這些參數來源於用戶在命令 行上輸入的參數。

如以下例子:

(1)命令行上輸入:

perl xx.pl C:/msConvert.exe C:/in C:/out

解釋:命令行上輸入了三個參數,即C:/msConvert.exe,C:/in和C:/out,這個三個參數是一個程序路徑和兩個文件夾路徑。當用戶 在命令行上輸入這三 個參數時,perl已經將它們儲存在@ARGV這個數組裏了。也就是,@ARGV[0]是C:/msConvert.exe,@ARGV[1]是C:/in,@ARGV[2]是C:/out。即 @ARGV=qw(C:/msConvert.exe C:/in C:/out)

xx.pl腳本裏有:

my ($msConvert,$inDir,$outDir)=@ARGV[0,1,2];

解釋:這是建立了三個標量,即$msConvert,$inDir,$outDir;然後對這三個標量進行了賦值,即將C:/msConvert.exe賦值給$msConvert,C:/in賦值給$inDir,C:/out賦值給$outDir。

3:  文件名通配(p243)

  類如shell,perl使用glob命令,取得當前目錄中的所有文件並按字母順序排序。

  

perl學習(4)正則表達式處理文本