Dateien lesen und schreiben

Dateien öffnen und schließen
Dateien lesen
Dateien schreiben




Dateien öffnen und schließen

Mit Perl-Skript können am Server-Rechner Dateien gelesen und geschrieben werden.

Beispiele:

#!/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);

Erläuterung:

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.

Dateien lesen

In Perl gibt es zwei Möglichkeiten eine Datei einzulesen.

Beispiel 1:

#!/usr/bin/perl

open(datei, "<test.txt") || die "Datei wurde nicht gefunden\n";
while(<datei>){
  print $_;
}
close(datei);

Beispiel 2:

#!/usr/bin/perl

open(datei, "<test.txt") || die "Datei wurde nicht gefunden\n";
while(($zeichen = getc(datei)) ne "") {
  print $zeichen;
}
close(datei);

Erläuterung:

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).

Dateien schreiben

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.

Beispiel 1:

#!/usr/bin/perl

open(file, ">test.txt");
print file "Erste Zeile schreiben\n";
print file "Zweite Zeile schreiben\n";
close (file);

Erläuterung:

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

© Markus Katzmayr, 2000 - last modified: Nov 08, 2000.