Sequa: Variablenverwaltungsverhalten von Perl/CGI

Beitrag lesen

Hallo Zusammen,

ich bin momentan dabei in relativ umfangreiches System zu programmieren das viele Userabhänige Variablen über eine primäre SessionID steuert. Diese SessionID wird jeweils bei einer Aktion des Users an ein Verteilerscript übertragen. Zudem wird die gewünschte Aktion mit übergeben. Diese werden nun im Verteiler ausgewertet und von dort aus wird dann der eigentliche Service aufgerufen. Die Variablen hierfür sind unter anderem: $sessionid, $service, $action, $reload, $offset etc... das sind aber alles globale Variablen, keine my-Variablen. Der Grund hierfür ist das diese Variablen zwar im Verteiler erzeugt werden, aber später in den Unterroutinen noch gebraucht werden... z.b. die SessionID ($sessionid) um den User zu identifizieren oder $reload um festzustellen ob das System sich neu aufgebaut hat (spielt hier jetzt aber keine Rolle). Nun, wie ihr euch sicher denken könnt soll das nicht nur für einen User funktionieren, sondern für mehrere (was der Server verkraftet spielt nicht so die Rolle, wenn das Ganze fertig ist ist eh ein eigener Server dafür fällig...). Soweit sogut... aber was passiert jetzt wenn z.b. User1 einen Service aufruft, die Routinen werden abgearbeitet und die aufgerufene Seite dargestellt... direkt nach User1 hat aber User2 auch eine Abfrage geschickt, die Variablen von User1 wie z.b. die $sessionid wird also mit der von User2 belegt. Eine Routine die noch User1 bearbeitet braucht die Variable aber noch, was passiert dann? Hat Perl da eine Temporäre Verwaltung das mehrere gleichnamige Variablen existieren können und dann richtig zugeteilt werden oder block Perl User2 solange bis User1 abgearbeitet wurde? Wie genau verhält sich das? Es wäre nämlich nicht in meinem Sinne wenn User1 plötzlich die SessionID von User2 zugewiesen bekommt und damit möglicherweise eine ganz andere Userklasse bekommt.
My-Variablen die z.b. über routine($sessionid) durchgeschleift werden will ich nicht unbedingt machen da ich das etwas aufwendig finde... zudem wüsste ich nicht ob dann nicht der gleiche Effekt wie oben beschrieben auftreten könnte.

Ich hoffe das sich dazu jemand auskennt.

Schöne Grüße,

Sequa