Jetzt wollte ich das mit ein paar Subroutinen auch machen, und da klappt es nicht. Ich habe beispielsweise eine Subroutine, die so aussieht:
sub input {
if ($cgi->param('antwort')) {
$origdatum = $cgi->param('origdatum');
$origname = $cgi->param('origname');
$origemail = $cgi->param('origemail');
$origurl = $cgi->param('origurl');
$origthema = $cgi->param('origthema');
} else {
...
Ein Problem mit dem wohl fast jeder irgendwann zu kämpfen hat. Helmut hat dir ja schon erklärt warum das falsch ist und wie man das lösen kann. Das Problem ist aber, dass in einem CGI Skript fast überall Aufrufen von Funktionen aus dem CGI Modul versteckt sind und wenn du immer das CGI Objekt als Parameter übergeben musst bekommst du sicher einiges zu tun.
Ich hab das mittlerweile so gelöst, dass ich alle Aufrufe mit CGI:: ausführe. Da meiner Meinung die Objektorientierte Variante für ein Objekt, das genau einmal und global gebraucht wird nicht sinnvoll ist. (wobei ich aber auch dazu sagen muss, dass ich die Funktionen aus dem Modul sehr intensiv nutze und fast keine HTML Ausgabe ohne mehr mache.)
Struppi.