AlexBausW: Gaestebuch

Beitrag lesen

Hallo Azrael,

for ($i=0;$i<=$SIZE;$i++) {

Das ist C-like, aber kein Perl ;) Besser ist:

foreach (@LINES) { # wobei @LINES klein geschrieben werden sollte: perldoc perlstyle

Dann kannst Du Dir nämlich:

$_=$LINES[$i];

sparen, da das aktuelle Element von @LINES automagisch in $_ referenziert wird.

if (/<!--begin-->/) {

mit dem open(OUTFILE, ">$outfile") die gaestebuch.html durch den eintrag ersetzt wird, obwohl er ja erst beim <!--begin--> anfangen sollte, bzw. mit open(OUTFILE, ">>$outfile") bewirkt es immerhin noch das richtige und setzt den Eintrag an den schluß der .html datei

die frage bleibt aber, wieso mit Hilfe von >$outfile die .html datei ersetzt wird obwohl die eintraege eben erst ab dem begin eingesetzt werden sollten

Das hört sich so an, als ob Du den neuen Eintrag ins Gästebuch schreibst, wenn der Ausdruck trifft, aber nichst in die Datei schreibst für all die anderen Zeilen des eingelesenen Gästebuchs, die Du natürlich auch wieder zurückschreiben musst (open F, ">file" löscht Dir die Datei)
Füge nach dem if()-Block ein 'else { print; }' ein, dann sollte der alte Inhalt in die Datei zurückgeschrieben werden. Du musst aber dran denken, auch <!--begin--> wieder neu zu schreiben, sonst ist Deine Marke weg und nichts geht mehr :)

Gruß Alex