一: 进行本章学习前的一些知识储备
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命令,取得当前目录中的所有文件并按字母顺序排序。