在我的代码的第一部分,我读取一个文件,并将其中的不同部分存储在目录中的不同文件中,在下面我想读取该目录中我在代码的第一部分构建它的所有文件:
while(<file>){ #making files in directory Dir } opendir(Dir,$indirname) or die "cannot open directory $indirname"; @docs = grep(/\.txt$/,readdir(Dir)); foreach $d (@Dir) { $rdir="$indirname/$d"; open (res,$rdir) or die "could not open $rdir"; while(<res>){ }
解决方法
由于我不知道你在线阅读循环中做了什么,并且不理解@docs和@Dir,我将展示对我有用的代码:
use strict; use warnings; use English; my $dir = './_tmp/readFID'; foreach my $fp (glob("$dir/*.txt")) { printf "%s\n",$fp; open my $fh,"<",$fp or die "can't read open '$fp': $OS_ERROR"; while (<$fh>) { printf " %s",$_; } close $fh or die "can't read close '$fp': $OS_ERROR"; }
输出:
./_tmp/readFID/123.txt 1 2 3 ./_tmp/readFID/45.txt 4 5 ./_tmp/readFID/678.txt 6 7 8
也许您可以发现脚本的相关差异.