Script löscht zuviel
Nicolas Muehlen
- perl
Hallo,
ich habe ein kleines Problem mit einem Per-Script: dieses liest nach einem Klick auf den entsprechenden Link aus einer Datei eine Zahl aus und setzt sie einfach um eins höher (ein sog. "Clickcounter", zu betrachten unter http://muehlen.di.to/space/space1.shtml ). Der Code sieht dazu folgendermassen aus:
foreach $main_line (@main) {
if ($main_line =~ /<!--$mark--(.*)-->/) {
$count=$1+1;
$temp=2;
print MAIN "<!--$mark--$count-->$count\n";
Der Teil in der HTML-Datei, in dem sich die Zahl befindet, sieht folgendermassen aus (die beinden Nullen werden dann nach dem besagten Klick auf 1 gesetzt):
<!--1--0-->0
Anstatt nun einfach den zu ersetzenden Teil (<!--1--0-->0) auszutauschen löscht das Script nun immer gleich die ganze Zeile in der HTML-Datei, was leider nicht sehr vorteilhaft ist. Weiß von euch vielleicht jemand Rat?
Viele Grüsse und danke,
Nicolas Muehlen
Hi,
ich vermute mal es ist in etwa so:
foreach $main_line (@main) {
if ($main_line =~ /<!--$mark--(.*)-->/) {
$count=$1+1;
$temp=2;
print MAIN "<!--$mark--$count-->$count\n";
} else { print MAIN $main_line; }
}
Ändere den Bereich folgendermaßen:
foreach $main_line (@main) {
if ($main_line =~ /<!--$mark--(.*)-->/) {
$eins = $1; # wofür siehst Du gleich
$count=$1+1;
$temp=2;
$main_line =~ s/<!--$mark--$eins-->$eins/<!--$mark--$count-->$count/;
}
print MAIN $main_line;
}
Es gibt nun nur noch eine Print-Zeile, weil die Daten bei Bedarf nur geändert werden, nicht komplett durch einen anderen Inhalt ersetzt.
Hope it helps,
Cheatah
Hi Cheatah,
Es gibt nun nur noch eine Print-Zeile, weil die Daten bei Bedarf nur geändert werden, nicht
komplett durch einen anderen Inhalt ersetzt.<<
Danke, jetzt arbeitet es fabelhaft :-)
Viele Grüsse,
Nicolas Muehlen