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.