我正在尝试从其他目录中读取文件,对我来说,每件事看起来都不错,但不幸的是我既没有得到任何错误也没有任何输出。
我正在开发Windows PC。
这是我的代码:
use strict;
use warnings;
use Cwd;
#chdir('C:\\APTscripts\\APStress\\Logs');
chdir('C:\\Mahi_doc\\Apstress_logs');
my ($dir_01,$dir_02);
my @FILES;
$dir_01 = getcwd;
#print "$dir\n";
opendir(DIR_01, $dir_01) ;
@FILES=readdir(DIR_01);
close(DIR_01);
my $count=12;
my $lines;
for my $dir_02 (@FILES)
{
#print"$dir_02\n";
if ( -d $dir_02)
{
opendir (DIR_02, "$dir_01"."/"."$dir_02") ;
while(our $file = readdir(DIR_02))
{
if($file =~ /APStress.*UIlog/g)
{
# print"$file\n";
open(FH,$file) or die "can not open the file $!\n";
while (defined(my $lines = <FH>))
{
print"$lines\n";
if($lines=~ m/WATCHDOG/ || $lines=~ m/Excessive JNI/gi )
{#chks for watchdog/excessive jni issue exist
print "Got it\n";
}
elsif($lines=~ m/installd: eof/gi)
{
print "EOF:Got it \n";
}
}
}
}
}
}
答案 0 :(得分:2)
在open
子句中,提供文件的完整路径:
open(FH, "$dir_01/$dir_02/$file") or die "can not open the file $!\n";
并且最好使用3 arg open和lexical文件处理程序:
open(my $FH, '<', "$dir_01/$dir_02/$file") or die "can not open the file $!\n";