有没有办法使用File :: Find :: Rule快速查找超过一千个文件的列表?

时间:2017-02-17 11:29:47

标签: perl

我的主目录有很多子文件夹,每个子文件夹包含一千多个文件。我需要获取扩展名为.xmlaux.tex的所有文件的名称,并将其存储在数组中。

use File::Find::Rule;

$path_dir = "d:/testing/Projects/";

my @allfiles = File::Find::Rule->file()->
        name( "*.xml", "*.aux", "*.tex" )->
        in( $path_dir );

print join "\n", @allfiles;

system 'pause';

上面的代码工作正常但运行时间超过一分钟。有没有办法更快地做到这一点?

1 个答案:

答案 0 :(得分:1)

尝试替换此行:

name( "*.xml", "*.aux", "*.tex" )->

用这个:

name( qr/\.(xml|aux|tex)$/ )->