我正在尝试在目录树中搜索Perl文件。我想从结果中排除一些目录。这可能是Find::File::Rule
吗?我试过了:
use warnings;
use strict;
use feature qw(say);
use File::Find::Rule::Perl;
my $dir='test';
my @files=File::Find::Rule->perl_file->name(qr/^.*debug.*\.(pm|pl)$/)->in($dir);
say join ("\n",@files);
要从结果中排除debug
子文件夹,但它不起作用。它只检查文件的名称,而不是路径名。
答案 0 :(得分:3)
在模块文档中有一个如何执行此操作的示例:Further Examples
忽略CVS目录
my $rule = File::Find::Rule->new; $rule->or($rule->new ->directory ->name('CVS') ->prune ->discard, $rule->new);
请注意这里使用空规则。空规则匹配他们看到的任何内容,因此效果是匹配(和丢弃)名为'CVS'的目录或匹配任何内容。
此方法通常也可以忽略这些类似.git
目录。