find通常被用来查找特定路径下的特定文件,用来搜索文件名非常有用,是perl中使用非常广泛的文件操作函数。
???? 先看个例子:
???? use File::Find;
???? find(&;PrintName,@curDir);
???? sub PrintName{
????????????????????????? my $path;
????????????????????????? if (/$reg/) {
???????????????????????????????????????????????? $path = $File::Find::name;
???????????????????????????????????????????????? $path =~ s////g;
???????????????????????????????????????????????? $path =~ s/+//g;
????????????????????????????????????????????????? print LST "$pathn";
????????????????????????????????????????? }?
????? }
????? 这是一个find函数的经典使用方法。它包含在FILE模块中,有两个参数。第一个一般为子程序,第二个为搜寻的路径。这里路径是用列表表示的,可以存放多个路径,即可以同时对几条路径进行搜索。每遇到一个文件,子程序都会被调用。我们需要判断,找到的文件是否与我们想要的文件相匹配。????
???? File::Find方式具有特殊变量,将被赋予特定的信息,显示如下:
???? (1)$_包含目录中的当前文件名
???? (2)$File::Find::dir包含当前目录名
???? (3)$File::Find::name包含$File::Find::dir/$_
???? 在寻找过程中,我们都位于目录$File::Find::dir下。这是可以用正则表达式选出我们寻找的文件。注意在匹配时“$”代表一个字符串最后的匹配而“^”代表与开头匹配。