5.2. Dateien
Für die Arbeit mit Dateien steht ein weiterer Datentyp zur Verfügung - das Dateihandle. Dateihandles werden durch <> gekennzeichnet (sofern sie nicht als Datentyp gefordert werden). Drei spezielle Dateihandles sind vorbelegt: <STDIN> <STDOUT> und <STDERR>.
Die Abfrage der Daten aus dem Handle erfolgt per einfacher Zuweisung, z.B.:

      $in=<STDIN> # liest eine Zeile bis zum nächsten Return oder Ctrl-D ein
      @in=<STDIN> # liest alle Zeilen bis zum nächsten Ctrl-D ein

Die Ausgabe auf ein Handle erfolgt wieder per "print / printf":

      print STDOUT "Hallo Welt\n";
      print STDERR "alles ok!\n";

Zum Öffnen und Schliessen von Dateien stehen die Funktionen
     
      open(HANDLE, DATEINAME);

und

      close(HANDLE);

zur Verfügung. Beim Öffnen gibt man den "Modus" im Dateinamen mit an. Folgende Alternativen gibt es:

Text
Beschreibung
"Name"
Datei zum Lesen öffnen.
"> Name"
Daten in die Datei schreiben
">> Name"
Daten an eine Datei anhängen
"| Name"
Daten an ein Programm "pipen"
"Name |"
Daten aus einer Pipe lesen

Ein Beispiel:

      open(DATEI, "/etc/passwd");
      print $_;
      close(DATEI);

Um den Status einer Datei abzufragen stehen folgende Prüfoperatoren zur Verfügung:

Operator
Beschreibung
-e / -z
Datei existiert, Grösse ungleich null / Grösse gleich null
-T / -B
Datei ist ein Text-Datei/Binär-Datei
-r / -w / -x
Datei ist lesbar/schreibbar/executable