• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Undefined subroutine &main::messageED

eagle-eb

Geocacher
Hallo!

ich habe mich nun durchgekämpft und geolog/ocprop aus dem SVN installiert unter Windows 7, ActivePerl. Nachdem ich nun die Datenbank bzgl. Cachegrößen erfolgreich bereingt habe, bekomme ich neuerdings diese Meldung.

Code:
Erzeugung der HTML-Seiten im Hauptverzeichnis ...
 ... contact gcprofileEs ist ein Fehler bei der Evaluation von
  sub OwnerCount {
    my(%owner,%ownercount);
    my(@ordered);
    my(@result);
    my($i);
    my(%link);
    my($value);
    foreach (keys(%found)) {
      if(exists $found{$_}->{'Ownerid'}) {
        $ownercount{$found{$_}->{'Ownerid'}}++;
        $owner{$found{$_}->{'Ownerid'}} = $found{$_}->{'Ownerrealname'};
      } else {
        $ownercount{$found{$_}->{'Owner'}}++;
        messageED(0," Ownerfound.incl: userid for $found{$_}->{'Owner'} \($found
{$_}->{'GCid'}/$found{$_}->{'OCId'}\) not found\r\n",
                    " Ownerfound.incl: Userid fuer $found{$_}->{'Owner'} \($foun
d{$_}->{'GCid'}/$found{$_}->{'OCId'}\) nicht gefunden\r\n");
      }
    }
    foreach (keys(%ownercount)) {
      if(exists $owner{$_}) {
        $value = "<a target='_blank' href=\"http://www.geocaching.com/profile/\?
id=$_\">$owner{$_}</a>";
      } else {
        $value = "$_";
      }
      $link{$value} = $ownercount{$_};
    }
    @ordered = pairsort(1,0,%link);
    $i=0;
    foreach (@ordered) {
      $i++;
      if($i < 61) {
        push(@result,$_);
      }
    }
    return(maketds(0,3,21,5,7,scalar(keys(%found)), @result));
  }
  OwnerCount();
   aufgetreten:
 Undefined subroutine &main::messageED called at (eval 147) line 15.

 index map map_osm statEs ist ein Fehler bei der Evaluation von
  sub OwnerCount {
    my(%owner,%ownercount);
    my(@ordered);
    my(@result);
    my($i);
    my(%link);
    my($value);
    foreach (keys(%found)) {
      if(exists $found{$_}->{'Ownerid'}) {
        $ownercount{$found{$_}->{'Ownerid'}}++;
        $owner{$found{$_}->{'Ownerid'}} = $found{$_}->{'Ownerrealname'};
      } else {
        $ownercount{$found{$_}->{'Owner'}}++;
        messageED(0," Ownerfound.incl: userid for $found{$_}->{'Owner'} \($found
{$_}->{'GCid'}/$found{$_}->{'OCId'}\) not found\r\n",
                    " Ownerfound.incl: Userid fuer $found{$_}->{'Owner'} \($foun
d{$_}->{'GCid'}/$found{$_}->{'OCId'}\) nicht gefunden\r\n");
      }
    }
    foreach (keys(%ownercount)) {
      if(exists $owner{$_}) {
        $value = "<a target='_blank' href=\"http://www.geocaching.com/profile/\?
id=$_\">$owner{$_}</a>";
      } else {
        $value = "$_";
      }
      $link{$value} = $ownercount{$_};
    }
    @ordered = pairsort(1,0,%link);
    $i=0;
    foreach (@ordered) {
      $i++;
      if($i < 61) {
        push(@result,$_);
      }
    }
    return(maketds(0,3,21,5,7,scalar(keys(%found)), @result));
  }
  OwnerCount();
   aufgetreten:
 Undefined subroutine &main::messageED called at (eval 281) line 15.

Ich habe einen OC-only Cache (OC4765) in der DB, liegt es vielleicht daran?

Vielen Dank!

lg eagle-eb
 

hamado

Geocacher
Der Fehler kommt bei mir auch, ich denke eher das es etwas mit den GC Ownern zu tun hat, da diese bei mir nicht mehr angezeigt werden (das Feld "Funde nach Cacheowner (TOP 30)" wird bei mir nicht mehr gefüllt.
Ich hoffe das HSCA da eine Lösung findet.
Gruß

Hans
 
OP
E

eagle-eb

Geocacher
Ich habe nun mal testweise in der cache.txt des betreffende Caches händisch die Zeile "Ownerid: " mit der entsprechenden ID eingetragen. Damit lief geolog.pl problemlos durch. Früher (in Vorgängerversionen) kam noch eine Fehlermeldung, die in etwa "konnte User-ID für /OCxxxx nicht finden). Dies war auch bei PMO-Caches der Fall. Bei diesen habe ich einfach aus einem Backup die erforderlichen Daten per Hand eingetragen.

Danach wollte ich noch ocprop aus dem SVN nehmen, jedoch beschwerte sich das Programm, daß ich mit einer veralteten Version arbeite (da stand noch was mit 2.18). Die Version habe ich in ocprop.pl in 2.20 geändert. Nun läuft meines Erachtens alles ohne Probleme durch. Übrigens ist der Eintrag Ownerid aus der cache.txt jetzt nicht mehr da. Wer weiß. Vorerst läuft alles.

lg eagle-eb
 

Inder

Geowizard
Ja, mit den Versionen läuft es etwas durcheinander. Sowohl ocprop als auch geoupdate melden in der EXE eine neuere Version als in der Perl-Ausführung.
 
Oben