Programm übergreifende Variablen (global?)

Die aktuelle Situation:
In einem Perlskript wird HTML-Text erzeugt. Dieser HTML-Text erzeugt u.a. ein Formular, welches ein zweites Perlskript aufruft.

Mein Problem:
Ich möchte, dass das zweite Perlprogramm vom ersten einen Parameter übergeben bekommt, der aber nicht an der Aufrufstelle im HTML-Text erscheinen darf. Eigentlich handelt es sich hier nicht um eine Parameterübergabe, sondern eher um eine Art globale Variable, die in mehreren Perlprogrammen sichtbar sein soll.

Geht das? Und wie?
Danke
Wolfgang

Hi,

Ich möchte, dass das zweite Perlprogramm vom ersten einen
Parameter übergeben bekommt,

in HTTP (also auch in CGI) gibt es kein „erstes“ oder „zweites“. Jeder HTTP-Request ist absolut unabhängig von allen anderen, die jemals waren oder sein werden.

Werte übergibst Du an ein CGI-Script gewöhnlich durch Parameter; im Falle eines Formulars also durch o.ä. Es darf auch sein. Dein „erstes“ Script kann diese problemlos in die HTML-Ausgabe schreiben.

der aber nicht an der
Aufrufstelle im HTML-Text erscheinen darf.

Im Quellcode? Nun, da sind die Werte garantiert, wenn Du so vorgehst. Ansonsten gibt es genau zwei Alternativen:

1.) Cookies, welche nur von einem Bruchteil der User akzeptiert werden, und
2.) Basic Authentication, welche der User aktiv durchführen muss.

Eigentlich handelt
es sich hier nicht um eine Parameterübergabe, sondern eher um
eine Art globale Variable, die in mehreren Perlprogrammen
sichtbar sein soll.

Gibt’s nicht. Speichere die Werte serverseitig irgendwo ab, und kümmere Dich um das alles andere als zu unterschätzende Problem der Usererkennung. Das Stichwort lautet hier „Sessions“.

Cheatah

Hi Chimera,

schreib die globalen Variablen doch in eine eigene Datei und binde diese Datei in Deinen Perlskripten mittels require ein.

Mfg
Giana