Nicolas Muehlen: Script löscht zuviel

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

  1. 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

    1. 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