请更正我的代码,似乎无法打开文件进行解析。错误是此行open(my $fh, $file) or die "Cannot open file, $!";
无法打开文件,。/ sample.pl第28行没有此类文件或目录。
use strict;
my $dir = $ARGV[0];
my $dp_dpd = $ENV{'DP_DPD'};
my $log_dir = $ENV{'DP_LOG'};
my $xmlFlag = 0;
my @fileList = "";
my @not_proc_dir = `find $dp_dpd -type d -name "NotProcessed"`;
#print "@not_proc_dir\n";
foreach my $dir (@not_proc_dir) {
chomp ($dir);
#print "$dir\n";
opendir (DIR, $dir) or die "Couldn't open directory, $!";
while ( my $file = readdir DIR) {
next if $file =~ /^\.\.?$/;
next if (-d $file);
# print "$file\n";
next if $file eq "." or $file eq "..";
if ($file =~ /.xml$/ig) {
$xmlFlag = 1;
print "$file\n";
open(my $fh, $file) or die "Cannot open file, $!";
@fileList = <$fh>;
close $file;
}
}
closedir DIR;
}在此处输入代码
引用readdir
的documentation:
如果您打算对readdir之外的返回值进行文件测试,则最好在相关目录之前添加。否则,因为我们在那里没有chdir,它将一直在测试错误的文件。