在/homes/sauravb/perl5/lib/perl5/File/Find/Rule.pm第292行没有包或对象引用时,无法调用方法“_compile”
#!/usr/bin/perl
use strict;
use warnings;
#use File Perl Module
#use Cwd sub perl module
use File::Find::Rule;
use Cwd;
use Cwd 'chdir';
chdir "/volume/regressions/results/JUNOS/HEAD/EABUPDTREGRESSIONS/15.1/15.1F5";
my $cwd = getcwd();
my $fh;
sub fileindex {
open($fh, ">", "/homes/sauravb/line_with_X-TESTCASE.txt" ) || die $!;
my $rule = File::Find::Rule->new;
my @files = $rule->any (File::Find::Rule->name('*.log'),
File::Find::Rule->in($cwd)
);
#print $fh map{ "$_\n" } @files;
}
fileindex();
答案 0 :(得分:4)
any
允许您指定备用标准集。例如,以下内容将返回名称以.log
或.txt
结尾的所有文件。
my @files =
File::Find::Rule
->any(
File::Find::Rule->name('*.log'),
File::Find::Rule->name('*.txt'),
)
->in($dir_qfn);
相反,您将一个条件以及目录中所有文件的名称传递给any
。这是不正确的。
您是否只想要目录中的日志文件列表?如果是这样,你只需要
my @files =
File::Find::Rule
->name('*.log')
->in($dir_qfn);
或者如果你想确保它们是纯文件(而不是目录),
my @files =
File::Find::Rule
->name('*.log')
->file
->in($dir_qfn);