Hallo
Hab aufgrund von Antworten auf eine frührere Anfrage versucht, die Überprüfung, ob in einem Formular Daten eingegeben wurden, mit "defined" + "exists" zu lösen. Hat dann schlussendlich dazu geführt, dass ich von cgi_lib.pl auf cgi.pm umgestiegen bin. Es funktioniert nun alles, nur die Prüfung mit "defined" nicht und beim Einsatz von "strict" die Meldung, dass die Variable $username nicht deklariert wurde (was ich aber doch tue?). Mit "eq" aber funktioniert die Prüfung.
Hätte gerne herausgefunden, was ich bei "defined" falsch geschreiben habe und weshalb ich die "Use of uninitialized value"-Fehlermeldung mit Bezug auf $username kriege.
Hier die nicht funktionierende "defined"-Variante:
********************************************
#!c:/program files/perl/bin/perl -w
use diagnostics;
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
require "datum.pl";
my $date = &ctime(time);
chop($date);
my ($outfile);
my $q = CGI::new();
my $username = $q->param("username");
my $city = $q->param("city");
my $comments = $q->param("comments");
my $homepage = $q->param("homepage");
Prüfung, ob zwingende Felder ausgefüllt wurden
if (defined $username)
{test_city();}
else {no_name();}
sub test_city{
if (defined $city)
{test_comments();}
else {no_city();}
}
sub test_comments{
if (defined $comments)
{url_test();}
else {no_comments();}
}
**************************************************
und hier die funktionierende "eq"-Version:
**************************************************
if ($username eq '')
{no_name();}
elsif ($city eq '')
{no_city();}
elsif ($comments eq '')
{no_comments();}
else {url_test();}
**************************************************
Besten Dank
Richard