是否有一种方法可以使用file :: find :: Rule更快地找到一千多个文件的列表



我的主要目录具有很多子文件夹,每个文件夹包含一千个文件。我需要使用.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';

上面的代码工作正常,但运行需要一分钟。有什么办法可以更快地执行此操作?

尝试替换此行:

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

与此:

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

最新更新