Wie finde ich rekursiv Dateien / Ordner im Perl-Skript?

7

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);

aus

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.

    
goldenmean 23.02.2011, 10:32
quelle

4 Antworten

15

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%     
Bee 23.02.2011 12:19
quelle
7

Diese beiden Seiten sind alles, was Sie zum Lernen brauchen:

Alessandro 23.02.2011 10:51
quelle
4

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.

    
Colin Newell 23.02.2011 10:54
quelle
3

Wenn es Ihnen nichts ausmacht, das cpan-Modul zu verwenden, kann Path :: Class die Arbeit für Sie übernehmen Sie:

%Vor%     
bvr 23.02.2011 11:09
quelle

Tags und Links