私はPerlの初心者です。ディレクトリ内のすべてのファイルの内容を出力し、ディレクトリ/サブディレクトリ内のすべてのファイルが出力されるまで再帰的に実行する Perl スクリプトを作成しようとしています。私は次のサブルーチンでそれをやっています。
sub print_files_in_dir {
my $file = shift;
if(-d $file){
my @files=glob "$file/*";
foreach my $file (@files){
if(-d $file){
print_files_in_dir $file;
}
else {
print_file $file;
}
}
else {
print_file $file;
}
}
ここで、print_file は、単一ファイルの内容を出力する sub です。dir2という名前の別のディレクトリを含むdir1というディレクトリでこのコードを実行しようとすると、このエラーが発生します。
パッケージ「dir1/dir2」を介してオブジェクトメソッド「print_files_in_dir」を見つけることができません (おそらく「dir1/dir2」をロードするのを忘れていましたか?)
なぜこのエラーがスローされるのかわかりませんか?