Dateien öffnen und schließen
Dateien lesen
Dateien
schreiben
Mit Perl-Skript können am Server-Rechner Dateien gelesen und geschrieben werden.
#!/usr/bin/perl open(datei, "<news.txt"); # Datei zum Lesen öffnen close(datei); open(datei, ">news.txt"); # Datei zum Schreiben öffnen close(datei); open(datei, ">>news.txt"); # Datei zum anhängenden Schreiben öffnen close(datei); |
Um eine Datei in Perl zu öffnen benutzt man die Funktion open. Diese Funktion erwartet als ersten Parameter den File-Handler. Der File-Handler ist ein Name, mit dessen Hilfe später auf die Datei zugegriffen werden kann. Der zweite Parameter gibt den Dateinamen der zu öffnenden Datei an.
Mit dem close Befehl wird eine Datei wieder geschlossen.
In Perl gibt es zwei Möglichkeiten eine Datei einzulesen.
#!/usr/bin/perl open(datei, "<test.txt") || die "Datei wurde nicht gefunden\n"; while(<datei>){ print $_; } close(datei); |
#!/usr/bin/perl open(datei, "<test.txt") || die "Datei wurde nicht gefunden\n"; while(($zeichen = getc(datei)) ne "") { print $zeichen; } close(datei); |
Die übliche Form in Perl eine Datei einzulesen ist zeilenweise (siehe Beispiel 1). Für diese Form gibt es allerdings keinen eigenen Lesebefehl in Perl. In einer Scheife werden alle Zeilen einer Datei nacheinander eingelesen. Um die Daten im Arbeitsspeicher für eine Weiterverarbeitung zu halten, müssen die Zeilen abgespeichert werden. Hierfür bieten sich vor allem Listen an.
Neben dem zeileweisen Einlesen ist es auch möglich einzelne Zeichen zu lesen. Hierfür wird der Befehl getc benötigt. Dieser Funktion übergibt man als Parameter den File-Handler und erhält das jeweils nächste Zeichen zurück. Ist man mit dem Einlesen am Ende der Datei angelangt, so liefert getc einen leeren Wert zurück (siehe Abbruchbedingung der while-Schleife in Beispiel 2).
Je nachdem, in welchem Modus eine Datei geöffnet wird (siehe Datei öffnen und schließen), wird eine bereits vorhandene Datei beim Schreiben von Daten überschrieben oder die Daten werden am Ende angehängt. Schreibt man Daten in eine noch nicht existierende Datei, so wird automatische eine neue Datei erzeugt.
#!/usr/bin/perl open(file, ">test.txt"); print file "Erste Zeile schreiben\n"; print file "Zweite Zeile schreiben\n"; close (file); |
Um Daten in eine Datei zu schreiben, wird der Befehl print verwendet. Gleich hinter dem Befehl wird der File-Handler angegeben und anschließend der zu schreibende Text.
Index |