Alain: inputs zählen ,wenn mehr als... -> abruch

Beitrag lesen

Hallo Struppi,

my $username = CGI::param('username')||'';
my $password = CGI::param('password')||'';
my $query = new CGI;
my $names = $query->param||'99';

Das ist auch nicht nötig.

Die erste Variante CGI zu benutzen, hast du wohl von mir.

möglich :)

Ich hab mir angewöhnt einfach direkt auf das Modul zu zugreifen, weil ich sowieso in jedem CGI Programm die CGI.pm eingebunden habe, aber keine Lust hatte immer ein erzeugtes Objekt rum zu schleppen, wo sowieso nur ein CGI Objekt existiert.

Es geht auch ohne Objekt, also so:

my $username = CGI::param('username');
my $password = CGI::param('password');
my $names = scalar CGI::param();

bad() if ( !$username || !$password || $names != 2);

Finde ich verständlicher (falls das ist was du prüfen willst).

ja schon, aber die bedingungen müssen alle als ganzes zutreffen,besser wäre dann
bad() if ( !$username and !$password and $names != 2);

Den Default wert brauchst du in diesem Falle nicht (wir hatten darüber ja mal a länger gesprochen), die Defaultwerte sind nur nötig, wenn du die Eingabe mit einem String vergleichen willst und du vorher nicht prüfst, ob die Werte überhaupt definiert sind.
Da du hier aber vorher schon prüfst, ob überhaupt was eingegeben wurde ist dies unnötig.

Danke -> schönes weekend.
Grüsse
Alain