поэтому у меня есть папка под названием DATA, и она включает в себя следующее: part1.html, part2.html, part3.html, HTML.htm, plain.html и jojo.jsp.
Теперь я использую следующий commmand, чтобы открыть папку DATA и извлечь файлы, содержащие.htm
opendir(DIR,'DATA');
my(@dir) = grep /\.htm/, readdir (DIR);
closedir(DIR);
Он успешно распечатывает имя файлов, содержащих расширения.html. Теперь я хочу использовать html файл, который фильтруется и распечатывает данные в терминале cygwin. Я попытался использовать файлы и сохранить их в переменной, а также использовать цикл foreach, чтобы открыть первый файл html с помощью Filehandler и распечатать инициализацию данных. Цикл повторится и сделает то же самое для всех других html файлов. Но я, похоже, столкнулся с ошибкой! Пожалуйста помоги!
my $value = join(@dir);
print "$value\n";
foreach(@dir){
my $movies = my $value;
open (FHD, $movies) || die " could not open $movies\n";
my @movies = <FHD>;
my $value2 = join(', ', @movies);
print "$value2\n";
Что с этой линией?
my $movies = my $value;
Вы делаете это намного сложнее, чем нужно.
Просто используйте glob
для чтения каталога, так как он автоматически включит информацию о пути в найденные файлы.
use strict;
use warnings;
use autodie;
for my $html (glob('DATA/*.htm*')) {
print "File: $html\n";
open my $fh, '<', $html;
print <$fh>;
}