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

Unklare Fehlermeldung

Inder

Geowizard
Ich habe beim automatischen Durchlauf gerade einen Fehler gesehen:

Bad name after Micro' at (eval 133) line 97.

Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 141) line 1.

index map map_osm statString found where operator expected at (eval 278) line 9
7, near "'Geocaching HQ' '

);

my(@clist) = ('"
(Might be a runaway multi-line '' string starting on line 93)
(Missing operator before '

);

my(@clist) = ('?)
Es ist ein Fehler bei der Evaluation von
# Type und Size Matrix
# Version 0.90 vom 25.11.2010 2mj
# Version 1.00 vom 30.09.2011 2mj (redesign)
# Version 1.01 vom 02.10.2011 2mj (info unknown cachetypes)
# Version 1.10 vom 03.10.2011 2mj (standard: ignore empty cachetypes)
# Version 1.11 vom 15.08.2014 hsca (add new cachetypes)

# Quelle: typestat.incl
sub StatTypeTrans {
my($type) = @_;
my(%imapping) = ('Traditional Cache' => 'traditional.gif',
'Multi-cache' => 'multi.gif',
'Virtual Cache' => 'virtual.gif',
'Letterbox Hybrid' => 'letterbox.gif',
'Event Cache' => 'event.gif',
'Unknown Cache' => 'mystery.gif',
'Webcam Cache' => 'webcam.gif',
'Locationless Cache' => 'locationless.gif',
'Earthcache' => 'earth.gif',
'Wherigo Cache' => 'wherigo.gif',
'Cache In Trash Out Event' => 'cito.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => 'ape.gif',
'Lost and Found Event Cache' => 'lfevent.gif',
'GPS Adventures Exhibit' => 'maze.gif',
'Giga-Event Cache' => 'giga.gif',
'Geocaching Block Party' => 'block.gif',
'Groundspeak Lost and Found Celebration' => 'hqlfevent.gif',
'Geocaching HQ' => 'hq.gif'
);
my(%emapping) = ('Traditional Cache' => '2.gif',
'Multi-cache' => '3.gif',
'Virtual Cache' => '4.gif',
'Letterbox Hybrid' => '5.gif',
'Event Cache' => '6.gif',
'Unknown Cache' => '8.gif',
'Webcam Cache' => '11.gif',
'Locationless Cache' => '12.gif',
'Earthcache' => 'earthcache.gif',
'Wherigo Cache' => '1858.gif',
'Cache In Trash Out Event' => '13.gif',
'Mega-Event Cache' => 'mega.gif',
'Project APE Cache' => '7.gif',
'Lost and Found Event Cache' => '3653.gif',
'GPS Adventures Exhibit' => '1304.gif',
'Giga-Event Cache' => '7005.gif',
'Geocaching Block Party' => '4738.gif',
'Groundspeak Lost and Found Celebration' => '3774.gif',
'Geocaching HQ' => '3773.gif'
);
if ($StatGcProfile) {
return("http://www.geocaching.com/images/WptTypes/" . $emapping{$type});
} else {
return("pics/" . $imapping{$type});
}
}

# Quelle: sizestat.incl
sub StatContainerTrans {
my($container) = @_;
my(%mapping) = (
Micro => 'micro.gif',
Small => 'small.gif',
Regular => 'regular.gif',
Large => 'large.gif',
Virtual => 'virtual.gif',
'Not chosen' => 'not_chosen.gif',
Other => 'other.gif');

$container = $mapping{$container};
if ($StatGcProfile) {
return("http://www.geocaching.com/images/icons/container/" . $container);
} else {
$container = "virtual_container.gif" if ($container eq "virtual.gif");
return("pics/" . $container);
}
}

sub sizeandtypematrix {

my $ignoreemptycachetypes = 1; # 0 = no, 1 = yes

my(@tlist) = ('Traditional Cache', 'Multi-cache',
'Unknown Cache', 'Letterbox Hybrid',
'Wherigo Cache', 'Earthcache',
'Webcam Cache', 'Virtual Cache',
'Event Cache', 'Mega-Event Cache',
'Locationless (Reverse) Cache', 'Cache In Trash Out Event',
'Project APE Cache', 'Lost and Found Event Cache',
'GPS Adventures Exhibit', 'Giga-Event Cache',
'Geocaching Block Party', 'Groundspeak Lost and Found Cele
bration' ,
'Geocaching HQ' '

);

my(@clist) = ('Micro', 'Small', 'Regular', 'Large', 'Other', 'Not chosen', 'Vi
rtual');

my(%cvals,%cnvals,%tvals,%ctvals);
my($cmax,$tmax,$ctmax);
my($text,$tmptext,$x,$y,$xyz);

my $sum = scalar(keys(%found));

foreach (keys(%found)) {
$x = $found{$_}->{'Container'};
$y = $found{$_}->{'Type'};

if (grep {$_ eq $y} @tlist) {
$cvals{"$x"}++;
} else {
$cnvals{"$y"}++;
}

$tvals{"$y"}++;
$ctvals{"$x,$y"}++;
}

foreach (keys(%cvals)) {
$cmax = $_ if ($cvals{$cmax} < $cvals{$_});
}
foreach (keys(%tvals)) {
$tmax = $_ if ($tvals{$tmax} < $tvals{$_});
}
foreach (keys(%ctvals)) {
$ctmax = $_ if ($ctvals{$ctmax} < $ctvals{$_});
}

my @cvals_values = values(%cvals);
my $cmedian = median(\@cvals_values);

my @tvals_values = values(%tvals);
my $tmedian = median(\@tvals_values);

my @ctvals_values = values(%ctvals);
my $ctmedian = median(\@ctvals_values);

$text = "";

foreach my $t ((@tlist)) {
$tmptext = "\n <tr>";
$tmptext .= "\n <td style='background:#DCDCDC;text-align:center;font-weight
:bold'><img src='" . StatTypeTrans($t) . "' height='15px' title='$t' alt='$t'></
td>";
foreach my $c ((@clist)) {
if (($xyz = $ctvals{"$c,$t"}) != 0) {
$tmptext .= "\n <td style='text-align:right;background:".statcolorampel
($ctvals{"$c,$t"},0,$ctvals{$ctmax},$ctmedian)."'>";
$tmptext .= "$xyz";
$tmptext .= "</td>";
} else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'> <
/td>";
}
}
$xyz = $tvals{"$t"};
if ($xyz) {
$tmptext .= "\n <td style='text-align:right;background:".(&statcolorampel
($tvals{$t},0,$tvals{$tmax},$tmedian))."'>";
$tmptext .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$tmptext .= "</td>";
}
else {
$tmptext .= "\n <td style='background:#DCDCDC;text-align:right'>0 (0,0%)<
/td>";
}
$tmptext .= "\n </tr>";

if (($xyz != 0) || ($ignoreemptycachetypes == 0)) {
$text .= $tmptext;
}
}

$text .= "\n <tr>";
$text .= "\n <td style='background:#DCDCDC;text-align:center;font-weight:bold
;'>Σ-Behälter</td>";

my $sumB = 0;
foreach my $c ((@clist)) {
$xyz = $cvals{"$c"};
if ($xyz) {
$text .= "\n <td style='text-align:right;background:".(
&statcolorampel($cvals{$c},0,$cvals{$cmax},$cmedian))."'>";
$text .= "$xyz (" . sprintf("%1.1f",$xyz/$sum*100) . "%)";
$text .= "</td>";
$sumB += $xyz;
}
else {
$text .= "\n <td style='background:#DCDCDC;text-align:right;'>0 (0,0%)</t
d>";
}
}
$text .= "\n <td style='background:#DCDCDC;text-align:right;font-weight:bold;
'>" . $sumB . " (" . sprintf("%1.1f",$sumB/$sum*100) . "%)</td>";
$text .= "\n </tr>";

# falls mal ein Cachetyp nicht in der Liste ist, z.B wenn ein neuer dazugekomm
en ist
while ( my ($k,$v) = each %cnvals ) {
$text .= "\n <tr>";
$text .= "\n <td colspan='9' style='background:#DCDCDC;text-align:left;font
-weight:normal;'>Unbekannter Cachetyp: " . $k . " (Anzahl: " . $v . ")</td>";
$text .= "\n </tr>";
}

return($text);

}

aufgetreten:
Bad name after Micro' at (eval 278) line 97.

Es ist ein Fehler bei der Evaluation von sizeandtypematrix() aufgetreten:
Undefined subroutine &main::sizeandtypematrix called at (eval 286) line 1.
 
OP
Inder

Inder

Geowizard
Nachtrag: es war die 2.87
Habe gerade auf 2.88 upgedatet. Mal sehen, ob der Fehler wieder kommt.
 
OP
Inder

Inder

Geowizard
Hat außer mir keiner diese Fehlermeldung? Falls doch, dann habe ich die Ursache gefunden:
In der typeandsizematrix.incl muss das zweite Hochkomma nach "Geocaching HQ" in Zeile 93 raus.
Das ist eines zu viel:

my(@tlist) = ('Traditional Cache', 'Multi-cache',
'Unknown Cache', 'Letterbox Hybrid',
'Wherigo Cache', 'Earthcache',
'Webcam Cache', 'Virtual Cache',
'Event Cache', 'Mega-Event Cache',
'Locationless (Reverse) Cache', 'Cache In Trash Out Event',
'Project APE Cache', 'Lost and Found Event Cache',
'GPS Adventures Exhibit', 'Giga-Event Cache',
'Geocaching Block Party', 'Groundspeak Lost and Found Celebration' ,

'Geocaching HQ' '

);

my(@clist) = ('Micro', 'Small', 'Regular', 'Large', 'Other', 'Not chosen', 'Virtual');
 
Oben