agapanthus: Perl erzeugt beim Speichern ungewollte Zeilen

Beitrag lesen

Moin.

Und noch ein Kommentar vom mir:

open DATEI, $name or die "Error: $!";
close DATEI;

Dann kannst du @neue_daten wegschreiben.

Du solltest geeignete Maßnahmen ergreifen, die verhindern, daß zum einen während des Lesens und bearbeitens ein anderer die Datei schreiben darf und zum anderen zw. Öffnen, Lesen und Bearbeiten der Datei und dem Schreiben der geänderten Datei keine anderen User die Datei bearbeiten können.

Stichwort flock, seek und truncate.

Meine Empfehlung:
open (zum lesen _und_ schreiben)
flock
Zeilen lesen und id löschen
seek (Dateizeiger auf Anfang)
truncate (alten Inhalt der Datei löschen)
schreiben (neuer Inhalt)
close

Und vor dem close KEIN unlock der Datei, das passiert automatisch bei close.

Gruß Frank