open (datei,"daten.txt") or die "Datei nicht da!";
@speicher = <datei>;
close (datei);
.
.
.
open (datei,">daten.txt");
print datei "NEUE ZEILE"; # Hier die neuen Daten in die Datei schreiben
print datei @speicher;
close (datei);
Das ist aber ganz übler Tobak! Kein flock, keine Checks der Rückgabewerte.
Genau!
Und was passiert in diesem Fall mit dem Inhalt der Dateien?
open (datei,"daten.txt") or die "Datei nicht da!";
@speicher = <datei>;
close (datei);
.
Wenn 2 Prozesse gleichzeitig auf diese Datei zugreifen, dann passiert das garantiert zu diesem Zeitpunkt! Und diesen Datenverlust würde ein flock auch nicht verhindern können.
.
open (datei,">daten.txt");
print datei "NEUE ZEILE"; # Hier die neuen Daten in die Datei schreiben
print datei @speicher;
close (datei);
Gruß Frank