如何遍历所有子目录中的文件?

CJ7*_*CJ7 0 recursion perl loops file

perl我可以通过执行以下操作遍历当前目录中的文件:

foreach $file (<*.*>) {
        print "$file found\n";
        # do stuff
}
Run Code Online (Sandbox Code Playgroud)

我如何才能对所有子目录中的所有文件执行相同的操作?

ike*_*ami 5

File::Find::Rule是一个很好的递归列出文件的模块。

所有文件(如您所问):

use File::Find::Rule qw( );

for my $qfn (File::Find::Rule->in(".")) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

只是带有“.”的文件 以他们的名义(根据您的示例):

use File::Find::Rule qw( );

for my $qfn (File::Find::Rule->name("*.*")->in(".")) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

添加->file将结果限制为纯文件(过滤目录)。