Hallo Beate!
my $flag = param('flag');
if ($flag) { ... }
Kann Probleme geben, wenn der Wert von $flag 0 oder "" ist. Ist dann naemlich auch logisch falsch, der Parameter existiert aber sehr wohl.
Oder einfach if(param("flag")) { ... }.
Ist mit obigem praktisch gleichbedeutend.
kann es sein, dass es sogar falsch ist mit
if (defined ($flag))
abzufragen?
Nein, sollte richtig sein. Zwar ist CGI.pm so schlecht dokumentiert, dass man dort nicht mal findet, was von param() zurueckgeliefert wird, wenn ein abgefragter Parameter nicht existiert, aber ein kleiner Test zeigt, dass es erwartungsgemaess undef ist (also ein undefinierter Skalar). Und das fragst Du ganz richtig mit if (defined(...)) ab.
Ich habe immer Fehlermeldungen bezueglich "defined" erhalten.
Welche?
Bis dann, Roland