私にはフォルダがあり、その中には多くのサブフォルダがあります。これらのサブフォルダには、多数の.htmlファイルが読み込まれています。私はそれを行うために次のコードを書いています。親フォルダと最初のサブフォルダが開き、1つの.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");
}
ヒント: "my"を "私たち"に使い、-wオプションを付けてperlを実行します(可能な場合は "use strict")。このエラーを早期に表示するのに役立ちました: "my"を使用しますが、厳密ではないと "$ file"は未定義であり、厳密に "$ file"は宣言されていないと警告するでしょう。 – araqnid