Ich habe ein Perl-Skript, das ich geschrieben habe, um Dateien rekursiv in meinen Windows-Ordnern zu suchen. Ich gebe den Suchtext als das Perl-Skript-Laufzeitargument ein, um eine Datei mit diesem Text in seinem Namen zu finden. Das Perl-Skript ist wie folgt:
%Vor% Aber das durchsucht nicht alle Unterverzeichnisse rekursiv. Ich weiß, dass glob
nicht rekursiv übereinstimmt.
Also probiert mit dem Modul File::Find
und der Funktion find(\&wanted, @directories);
Aber ich habe eine Fehlermeldung mit find()
undefined erhalten. Von dem, was ich aus der Hilfe gelesen habe, dachte ich, dass find()
function standardmäßig in der Perl-Installation definiert ist, mit ein wenig Basiscode, um Ordner / Dateien zu finden. Ist es nicht korrekt?
Die Frage ist, ob ich im obigen Perl-Skript rekursiv nach Dateien / Ordnern suche?
Zweite Frage, ich fand, dass perldoc <module> help
keine Beispiele über die Verwendung einer bestimmten Funktion in diesem Modul hat, was es deutlich machen würde.
Können Sie auf eine gute Hilfe / Dokument / Buch zur Verwendung verschiedener Perl-Funktionen aus verschiedenen Perl-Modulen mit klaren Beispielen für die Verwendung dieser Modulfunktionen verweisen.
Ein weiteres hervorragendes Modul ist File :: Find :: Rule , die einen Teil der Komplexität von Datei :: Suchen Sie , während Sie dieselbe umfangreiche Funktionalität bereitstellen.
%Vor%Eine Alternative wäre, find2perl zu verwenden, um den Start des Skripts für Sie zu erstellen. Es kann einen Suchbefehl wie,
machen %Vor%Zu einem äquivalenten Perl-Skript. Sie legen einfach find2perl statt finden. Es verwendet File :: Find unter der Haube, aber bringt Sie schnell.
Wenn es Ihnen nichts ausmacht, das cpan-Modul zu verwenden, kann Path :: Class die Arbeit für Sie übernehmen Sie:
%Vor%