Hallo da draussen!
Ich hab da ein (wahrscheinlich) einfaches Problem, finde aber keine Lösung (und es fehlen mir gute Suchbegriffe).
Ich habe ein cgi, das ich von verschiedenen Formularen aus aufrufe.
Allerdings sind nicht in jedem Formular alle Parameter enthalten, die das CGI akzeptiert:
(Auszug CGI:)
my $Input="";
my %logdifs = ();
read(STDIN, $Input, $ENV{'CONTENT_LENGTH'});
my @parameters = split(/&/, $Input);
for (@parameters)
{
my ($name, $value) = split(/=/. $_);
$logdifs{$name}=$value;
}
my $wert1 = $logdifs{"wert1"};
my $wert2 = $logdifs{"wert2"};
...
Es kann also sein, dass es z.B. kein $logdifs ("wert2") gibt; logischerweise mault dann der Apache beim Zugriff auf wert2: "uninitialised value...";
nun dacht ich, mit Folgendem wäre das gelöst:
$logdifs{wert2}?wert2=$logdifs{"wert2"}:wert2="";
Aber: enthält $logdifs{wert2} z.B. %2F, so erhalte ich nun als wert2 einen Leerstring.
Aber wie kann ich denn sonst prüfen, ob $logdifs{wert2} "existiert"?
Schonmal Danke für's lesen,
Richard