Thread Mason - merkwürdiges Verhalten von Komponenten
(14 answers)
Opened by tsy at 2008-05-28 19:52
Hallo!
Ich habe ein (für mich) merkwürdiges Verhalten von von mir programmierten Komponenten herausgefunden und hoffe, dass es mir jemand erklären kann. Zur besseren Übersicht habe ich das ganze auf einige einfache Skripte heruntergebrochen. In meinem Komponenten-Wurzelverzeichnis befinden sich (unter anderem) die folgenden komponenten: /autohandler /lib.mas Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <%perl> sub printv { my $key = shift; return $key; } sub dateTime { my $i; my %result; my @datetime = localtime(time); $datetime[5] += 1900; $datetime[4] += 1; for ($i=0; $i < 5; $i++){ $datetime[$i] = sprintf("%02d",$datetime[$i]); } my $dateString = $datetime[5] . "-" . $datetime[4]. "-" . $datetime[3] . " " . $datetime[2] . ":" . $datetime[1] . ":" . $datetime[0]; $result{'asString'} = $dateString; $result{'asTimestamp'} = time; return %result; } </%perl> /test.html Code (perl): (dl
)
1 2 3 4 5 %print "eins <br>"; <% printv "zwei" %> %print "drei <br>"; %my %res = dateTime; %print $res{'asString'}; Starte ich meinen Apache, so bekomme ich zumindest beim ersten Laden der datei test.html den Fehler, dass bei printv ein String steht, aber ein Operator erwartet wird. Genauer: Code: (dl
)
String found where operator expected Ich gehe daher davon aus, dass lib.mas nicht includiert wurde. Das selbe Verhalten beobachte ich auch in Seiten meiner Anwendung (alle im selben Verzeichnis wie die test.html). Beim zweiten mal laden funktioniert dann allerdings meißt alles problemlos. Es ist dort dann aber zwischendurch immer wieder mal so, dass die Seite mit dem gleichen Fehler wieder nicht angezeigt werden kann. Das ganze passiert für mich nach keinen erkennbaren Schema. "Funktioniert" einmal eine Seite, die diese lib.mas includiert einmal, so geht auch meine test.html ohne Fehler durch. Über ein paar erleuchtende Ideen wäre ich sehr dankbar, ich trete nämlich gerade total auf der Stelle! Viele Grüße, tsy |