私は、スクリプトが置かれているフォルダから始まるファイル構造を表示するスクリプトを作成しようとしています。スクリプトは再帰呼び出しなしでうまく動作しますが、その呼び出しによって、次のメッセージでクラッシュします。closedir()は、printFiles.pl行24の無効なdirhandle DIRで試みました。フォルダが印刷され、実行が最後の行に達しましたが、再帰呼び出しが行われないのはなぜですか?そして、私は代わりにこれを解決すべきですか?あなたのPerlプログラムの開始時にPerlの再帰的なディレクトリトラバーサル
#!/usr/bin/perl -w
printDir(".");
sub printDir{
opendir(DIR, $_[0]);
local(@files);
local(@dirs);
(@files) = readdir(DIR);
foreach $file (@files) {
if (-f $file) {
print $file . "\n";
}
if (-d $file && $file ne "." && $file ne "..") {
push(@dirs, $file);
}
}
foreach $dir (@dirs) {
print "\n";
print $dir . "\n";
printDir($dir);
}
closedir(DIR);
}
'ls -R'についてはどうですか? – TLP
私は知っているが、それは簡単な方法を行うには面白くない。 – nist