Struppi: Datei wird falsch editiert

Beitrag lesen

Auszug aus der Perl-Datei

dringend würde ich dir raten use strict zu verwenden und Warnungen anzuschalten. Damit kannst du auf jeden Fall Tippfehler o.ä. ausschliessen.

@alldats=<*.html>;   # Erfassen aller HTML-Dateien im Ordner

Du bist Sicher, dass du im richtigen Ordner bist?
Außerdem würde ich diese Dateien nicht in einem array abspeichern, es sei denn du brauchst diese Daten später nochmal.

Also:

while( <*.html> ){

my $datei = $_;

Das solltest du auf jeden Falll mache, da du später diesen Wert wiederverwenden willst und du kannst nie sicher sein, das $_ nicht überschrieben wird.

open(HTML,"<$_")   # Öffnen zum Lesen

Bei open sollte man auf jedne Fall den Rückgabewert prüfen:

open(HTML , $datei) || die "Kann datei nicht öffnen, weil: $!";

@datinh=<HTML>;
   foreach(@datinh)
   {
    $p++;
    if(/<!-- Ticker:Anfang -->/) # Wenn Kommentar-Position gefunden ..
    {
     $tickerid=$p; # Merken der Position
    }
   $p++;
   }

Du kannst ohne Problem, nach dem if die Schleife verlassen, wenn du keine anderen Aktionen mehr ausführen möchtest

my $tickerid = 0;
my @datinh = <HTML>;

foreach(@datinh)
{
$p++;
next unless /<!-- Ticker:Anfang -->/; # weiter wenn nicht gefunden

$tickerid = $p; # Merken der Position
last;
}
close(HTML);

$datinh[$tickerid + 2] = $form{'tickertext'};

open(HTML, ">$datei") || die "Kann $datei nicht öffnen, weil: $!";
print HTML "@datinh";
close HTML;

Struppi.