perl學習(4)正則表達式處理文本
一: 進行本章學習前的一些知識儲備
1: Perl最喜歡用的默認變量:$_(摘於perl語言入門78頁)
假如在foreach循環開頭省略空置變量,Perl就會用它最喜歡的默認變量$_。
eg: foreach(1..19) { #默認會用$_作為控制變量
print "Ican count to $_\n";
}
當未告知perl使用哪個變量或數值時,perl就會自動使用$_,從而使程序員免於命名和鍵入新變量的痛苦。
2: 處理命令行參數 #出處:p108
@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)正則表達式處理文本