Thread Mason - merkwürdiges Verhalten von Komponenten (14 answers)
Opened by tsy at 2008-05-28 19:52

tsy
 2008-05-28 19:52
#110415 #110415
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
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
Code (perl): (dl )
1
2
<& lib.mas &>
% $m->call_next;


/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

View full thread Mason - merkwürdiges Verhalten von Komponenten