У меня есть папка и внутри, что у меня много подпапок. В этих подпапках у меня есть много файлов .html для чтения. Для этого я написал следующий код. Он открывает родительскую папку, а также первую вложенную папку и выводит только один файл .html. Он показывает ошибку:Как читать несколько каталогов и читать содержимое подкаталогов в Perl?
NO SUCH FILE OR DIRECTORY
Я не хочу изменять весь код. Любые изменения в существующем коде будут полезны для меня.
use FileHandle;
opendir PAR_DIR,"D:\\PERL\\perl_programes\\parent_directory";
while (our $sub_folders = readdir(PAR_DIR))
{
next if(-d $sub_folders);
opendir SUB_DIR,"D:\\PERL\\perl_programes\\parent_directory\\$sub_folders";
while(our $file = readdir(SUB_DIR))
{
next if($file !~ m/\.html/i);
print_file_names($file);
}
close(FUNC_MODEL1);
}
close(FUNC_MODEL);
sub print_file_names()
{
my $fh1 = FileHandle->new("D:\\PERL\\perl_programes\\parent_directory\\$file")
or die "ERROR: $!"; #ERROR HERE
print("$file\n");
}
совет: предпочитайте использовать «мой» для «нашего» и запускать perl с параметром -w (и «используйте строгую», если это вообще возможно). что помогло бы выявить эту ошибку раньше: используя «мой», но без строгой, он предупредил бы вас, что «$ file» не определен, и со строгим он умер бы до запуска, заявив, что «$ file» не был объявлен. – araqnid