agapanthus: /(CGI)

Beitrag lesen

Moin.

Folgendes Problem:

Eine Variable soll mit dem Inhalt eines per Formular übergebenen Feldes gefüllt werden. Ist das Formularfeld leer, soll ein default value eingetragen werden. Dazu prüfe ich in Zeile 12, ob das Feld übermittelt wurde, wenn ja wird die Variable $sizelimit mit dem value beschrieben. Andernfalls ist $sizelimit = 20.

Nun gibt es folgendes Verhalten: Ist das Feld mit einer Zahl größer 0 gefüllt, gehts immer in dem if-Zweig - so soll es sein. Ist das Feld leer, gehst in den else-Zweig, auch ok. ABER ist das Feld mit einer 0 (Ziffer Null) gefüllt, gehts es auch in den else-Zweig!? Warum? Null ist eine gültige Zahl. Und eben nicht "nichts". Wie bekomme ich den Wert Null in meine Variable $sizelimit?

Danke schon mal für Eure Antworten,
Gruß Frank

1     #!/usr/bin/perl -w
2     use CGI;
3     use CGI::Carp qw(fatalsToBrowser);
4
5     my $sizelimit;
6
7     $query = new CGI;
8
9     print $query->header('text/html');
10    print $query->start_html();
11
12    if  ($query->param('sizelimit')) {
13        $sizelimit=$query->param('sizelimit');
14        print "if: $sizelimit";
15    }else{
16        $sizelimit=20;
17        print "else: $sizelimit";
18    }
19
20    $query->delete('sizelimit');
21    print $query->startform(-method => 'GET',
22                            -name => 'limit',
23                            -action => $query->url
24                            );
25
26    print "sizelimit: ";
27    print $query->textfield('sizelimit',$sizelimit,10);
28    print $query->submit(-value=>'submit');
29    print $query->endform();
30
31    print $query->end_html();