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
|