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;
}
Привет, У меня возникают проблемы с открытием файлов, абсолютный путь которых хранится в массиве.Glob - это другая ошибка значения, открывающая файл и чтение
Что я хочу сделать, это пройти через массив и открыть каждый файл, а затем сохранить их в массиве @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 Full code
/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 Full code
Err, я не понимаю вашу проблему. Какой результат ожидался? Он должен работать нормально. Вы можете видеть, что никогда не будет разницы между '[1]' и '[2]'? – amon
Это не извлечение данных из этих файлов ' /мнт/HGF,/PERL/назначение/тест/а/аа/1 - Копировать - копирование (2) .htm [2] /шоссе/HGF,/PERL/назначение/тест/b/bb/1 - Копировать - Копировать (2) .htm [2] ' –