Struppi: csv - Dateihandhabung

Beitrag lesen

Ich öffne und schliesse mehrmals die Gästebuchdatei. Weil es anders mit den Funktionen nicht geht.

Damit sind deine flocks überflüssig, dass hatte ich dir aber bereits erklärt.

Nein, während sie offen ist, ist die Datei für andere gesperrt. Ist sie zu, kann ja ein anderer Prozess die datei nutzen. Das erste Perlprog wartet dann eben bis das zweite Perlprog ferti ist. Kein Problem.

Nein, da du in deinem skript mehrere Dateioperationen einbauen willst, wird jedesmal wenn du die Datei schliesst der flock aufgehoben und ein anderer Prozess kann die Datei manipulieren, such mal nach "race condition"

Es gibt bei mir zwei Scripte:

GuestBookManager->
Der vergleicht den letzen eintrag mit dem neusten, und schreibt die Daten, wenn sie korrekt sin ein.

Und liest die Datei vorher ein, nachdem sie geschlossen wurde, bevor sie geschrieben werden, kann ein anderer Prozess diese Datei lesen und wird die Änderungen des ersten Skripts überschreiben. Und das wird passieren, das weiß ich, weil meine ersten Skripte auch so arbeiteten. x-mal waren die Daten weg.

Wenn das Skript Daten ändern soll, musst du die Datei während des ganzen Prozess, also bei einlesen und schreiben locken.

Alle beide nutzen die guest.csv-Datei je im ex-Modus. Bisher keine Probleme gehabt!

*ironie* Das ist natürlich ein Argument

---------------------------------------------------------------------------

my->
erzeugt eine Variable, die nur innerhalb einer Funktion ihre Gültigkeit hat.

Nein, innerhalb eines Blocks.

---------------------------------------------------------------------------

local->
erzeugt eine Variable, die im ganzen Script ihre Gültigkeit hat.

Nein. es erzeugt eine lokale Kopie. Aber local sollte nicht mehr verwendet werden, steht auch im Artikel.

Ganz allgemein zu dieser Variable-Erklärungs-Seite:

Ich kann mich dem Vorschlag stehts "my" zu verwenden, nicht anschließen.

Komisch warum machen das dann alle so?
Vielleicht hilft dir dieser Artikel http://wiki.perl-community.de/Wissensbasis/UseStrict

Struppi.