ein Kapitel zurück                                           ein Kapitel weiter

Mit den Funktionen opendir, readdir und closedir haben wir die Möglichkeit Dateiverzeichnisse, Eintrag für Eintrag durchzugehen.

opendir :
Mit opendir können wir ein Verzeichnis, wie eine normale Datei, öffnen. Ebenso wie bei einer normalen Datei haben wir als ersten Parameter ein Handle, das Directoryhandle. Dies ist genauso einzusetzten wie das Filehandle. Als zweiten Parameter benötigen wir die Pfadangabe, die wir öffnen wollen. Wird keine Pfadangabe gemacht gilt das aktuelle Verzeichnis. Im Fehlerfall liefert opendir undef zurück. Auch hier steht der Fehler in der reservierten Fehler-Variablen $!
Hier der Syntax zu opendir......

opendir(Directoryhandle, Pfad) or die $!; 

readdir : Um nun ein Beispiel dafür zu zeigen, benötigen wir noch eine Funktion mit der wir diese Verzeichnis auslesen können, readdir. Mit readdir können wir nun, bei Erfolgreichen öffnen mit opendir vorausgesetzt, das Verzeichnis auslesen. Hierzu der Syntax zu readdir......

while( defined ($name=readdir(Directoryhandle))){ .... }   

closedir : Mit closedir geben sie das nicht mehr benötigte Directoryhandle frei. Der Syntax zu closedir lautet einfach.....

closedir Directoryhandle;

Wollen wir uns ein Beispiel dazu ansehen. Wir wollen das aktuelle Verzeichnis auslesen....

#!/usr/bin/perl -w

opendir(DH, ".") or die "Fehler bei opendir : $!\n";
while(defined($name=readdir(DH))){
   print $name , "\n";
   }
closedir DH;


Wenn sie nun z.B. nach Textdateien in Ihrem Verzeichnis suchen brauchen sie nur den Pattern-Matching-Operator verwenden..........

#!/usr/bin/perl -w

opendir(DH, ".") or die "Fehler bei opendir : $!\n";
while(defined($_=readdir(DH))){
   print $_ , "\n" if $_=~m/.*\.txt/;
   }
closedir DH;


Wenn sie nur Verzeichnisse Auslesen wollen brauchen sie nur den Schalter -d (Directory) verwenden.......

#!/usr/bin/perl -w

opendir(DH, ".") or die "Fehler bei opendir : $!\n";
while(defined($_=readdir(DH))){
   print $_ , "\n" if -d;
   }
closedir DH;


Wir kommen aber noch zu den Dateioperatoren wie -d in diesem Beispiel.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf