我想知道目录树中的文件。像这样
TOP -> SECOND -> FOLDERS 1-3 -> NAME -> Files
我没有生成这些文件,但是它们的格式是这样的
1234 ACS. (Description).txt
是的,这里是空白
我的问题是当我从"NAME"文件夹中读取。txt文件
opendir(DIR, $top.$second) or die "CANNOT OPEN SECOND DIRECTORYn";
@nameFolders = grep { !/^.|..$/ } readdir(DIR);
closedir(DIR);
foreach(@nameFolders){
$folder = $_;
if($_ =~ /.txt$/){ next; } #sometimes .txt files are here but I took care of them earlier in the code and that works just fine
#print $_."n"; #Output is 100% perfect here
opendir FIL, $top.$second."/".$folder or die "CANNOT OPEN NAME DIRECTORYn";
@files = grep { /.txt$/ } readdir(FIL);
closedir(FIL);
foreach(@files){
$fileName = $_;
print $fileName."n"; #HERE IS MY PROBLEM OUTPUT IS BELOW
@fileName = split / /, $fileName;
$numID = $fileName[0];
$goodFiles{$fileName}=$numID;
}
}
OUTPUT:
1234 ACS. (STUFF).txt
ACS.
1235 ACS. (STUFF).txt
ACS.
...
这是怎么回事?我没有吐出文件名,直到我打印之后,它在@files数组中。
我很茫然。
感谢您的任何输入。
这有帮助吗?
use strict;
use warnings;
use File::Find;
my @directories_to_search = ();
push(@directories_to_search, 'TOP/SECOND/');
find(&wanted, @directories_to_search);
sub wanted
{
my $file = $_;
if (defined($file) && $file =~ m/.txt$/)
{
print "$filen";
}
}
1234 ACS. (STUFF).txt
1235 ACS. (STUFF).txt