要在Perl中解析多个文件

问题描述 投票:0回答:1

请更正我的代码,似乎无法打开文件进行解析。错误是此行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;

}在此处输入代码

perl parsing
1个回答
0
投票

引用readdirdocumentation

如果您打算对readdir之外的返回值进行文件测试,则最好在相关目录之前添加。否则,因为我们在那里没有chdir,它将一直在测试错误的文件。

© www.soinside.com 2019 - 2024. All rights reserved.