sub searchInDirectory
{
my @directorylist;
opendir my $dir, $_[0] or die "Unable to open directory";
while (my $file = readdir $dir)
{
if(-f "$file")
{
#process file
}
elsif((-d "$file") && !($file =~ /^\.{1,2}$/)) #directory && not .. or .
{
push @directorylist, $file;
}
}
closedir($dir);
foreach my $diritem (@directorylist)
{
&searchInDirectory($_[0] . "/" . $diritem);
}
}
Dies ist mein Code zum rekursiven Durchsuchen der Unterverzeichnisse und Dateien eines Verzeichnisses. Das Problem ist, dass es beim ersten Durchlauf funktioniert, aber beim zweiten Aufruf schlägt die Verzeichnisprüfung fehl. Ich habe überprüft, um sicherzustellen, dass es Dateien vs Ordner korrekt identifiziert, was es ist. Es ist auch nicht versäumt, die Verzeichnisse zu öffnen, so dass ich nicht verstehe, warum es nicht erkannt werden würde, und rufen Sie die Funktion erneut auf. Ich würde mich sehr gerne an diese Methode halten, anstatt andere Bibliotheken zu verwenden.Perl-Verzeichnisprüfung fehlgeschlagen bei rekursivem Aufruf