sub open_files {
my @files = @_;
my @lines;
foreach (@files){
print "$_\[1\]\n";
}
foreach my $f (@files){
print "$f\[2\]\n";
open(my $fh,'<',$f) or die " '$f' $!";
print "$fh\[3\]\n";
push(@lines,<$fh>);
close($fh);
}
return @lines;
}
Привет, у меня проблемы с открытием файлов, абсолютный путь которых хранится в массиве.
Что я хочу сделать, так это пройти через массив и открыть каждый файл, а затем сохранить их данные в массиве @lines
, а затем закрыть дескриптор файла.
Однако я могу открыть .html
файлы, которые хранятся в первом дочернем каталоге .e.g /a/abc.html or /b/bcd.html
, однако он не открывает (или не анализирует) файлы, которые находятся в дочерних каталогах, таких как /a/aa/abc.html or /b/bb/bcd.html
Я добавил несколько дополнительных print statements
в свой сценарий и пронумеровал их вывод для разных строк печати, например. [1] [2] [3]
.
Это результат выполнения приведенного выше кода:
Полный код: pastebin Полный код
/mnt/hgfs/PERL/assignment/test/a/aa/1 - Copy - Copy (2).htm[1]
/mnt/hgfs/PERL/assignment/test/a/aa/1 - Copy - Copy (2).htm[2]
GLOB(0x898ad20)[3]
/mnt/hgfs/PERL/assignment/test/b/bb/1 - Copy - Copy (2).htm[1]
/mnt/hgfs/PERL/assignment/test/b/bb/1 - Copy - Copy (2).htm[2]
GLOB(0x898ae40)[3]
/mnt/hgfs/PERL/assignment/test/a/1 - Copy - Copy (2).htm[1]
/mnt/hgfs/PERL/assignment/test/b/1 - Copy - Copy (2).htm[1]
/mnt/hgfs/PERL/assignment/test/c/1 - Copy - Copy (2).htm[1]
/mnt/hgfs/PERL/assignment/test/a/1 - Copy - Copy (2).htm[2]
GLOB(0x898ae40)[3]
/mnt/hgfs/PERL/assignment/test/b/1 - Copy - Copy (2).htm[2]
GLOB(0x898ae40)[3]
/mnt/hgfs/PERL/assignment/test/c/1 - Copy - Copy (2).htm[2]
GLOB(0x898ae40)[3]
Если вам нужен полный код, вот он: pastebin Полный код
[1]
и[2]
? - person amon   schedule 09.05.2013