Entdecken Sie Perls File::Find-Modul

Natürlich bietet auch die interne Suchfunktion von Windows zum Teil diese Funktionalität. Aber ich habe dieses Skript geschrieben, weil man die Dateien auf alle möglichen Arten innerhalb von Perl bearbeiten kann, sobald man sie erst einmal gefunden hat. Man kann jede Datei z.B. öffnen und nach einem bestimmten Muster suchen, man kann sie automatisch löschen oder sie als Input für ein anderes Programm benutzen.

Ich greife dabei auf ein Modul aus der Standardbibliothek von Perl sowie eine Perl-Funktion zurück, so dass Ihnen alle erforderlichen Module zur Verfügung stehen sollten, wenn Sie Perl auf Ihrem Windows-Rechner installieren. (Meine Perl-Version ist die von ActiveState.) Die File::Find-Funktion imitiert den find-Befehl von UNIX und durchläuft einen Verzeichnisbaum. Und so können Sie auf diese Funktion zugreifen:


Find(&yoursubroutine, 'dir1', 'dir2'…);

Sie stellen eine Subroutine bereit – Einzelheiten später – sowie eine Liste der zu durchsuchenden Verzeichnisse. Denken Sie daran, dass diese Verzeichnisse rekursiv durchlaufen werden.

Die andere Methode, die ich verwende ist die stat()-Funktion (ähnlich der gleichnamigen Funktion aus der C-Library), die alle möglichen Informationen über die als Argument übergebene Datei liefert. Listing B zeigt den Zugriff auf diese Methode.

Beachten Sie, dass die Funktion die Werte als Liste zurückgibt. Der einzige Wert, der uns interessiert, ist $size, der die Größe der jeweiligen Datei in Bytes angibt.

Die ganze Arbeit des Utilitys wird in der Subroutine ausgeführt. Sie erinnern sich: Diese wird bei jeder gefundenen Datei aufgerufen. Wir müssen also selber darauf achten, ob die Dateinamen den von uns gesuchten Dateien entsprechen.

Die File::Find-Methode stellt einige Spezialvariablen bereit, in denen bestimmte Informationen zu finden sind:

  • $_ enthält den Namen der aktuellen Datei innerhalb des Verzeichnisses
  • $File::Find::dir enthält den aktuellen Verzeichnisnamen
  • $File::Find::name enthält $File::Find::dir/$_

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Entdecken Sie Perls File::Find-Modul

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *