Christian Kruse: Fehlermeldung "Use of uninitialized value in string ..."

Beitrag lesen

你好 Reisser696,

Ich schlage mich hier nun geraume Zeit mit der netten Fehlermeldung "Use of uninitialized value in string ..." rum und wundere mich langsam was ich denn hier falsch mache?

Das ist keine Fehlermeldung, das ist eine Warnung. Kleiner, aber feiner Unterschied.

Um in Perl abzufragen, ob ein Wert definiert ist, gibt es defined:

#!/usr/bin/perl -w  
  
use CGI qw/param/;  
  
print "Content-Type: text/plain\015\012\015\012";  
  
if(defined param("abc")) {  
  print "Definiert!";  
}  
else {  
  print "Undefiniert!";  
}

#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Testausgabe</title>\n";
print "</head><body>\n";

if( $ENV{QUERY_STRING} eq "" ) {
print "<b>Dem Script wurden keine Daten &uuml;bergeben!</b>\n";
}
print "</body></html>\n";


>   
> Wo liegt da nun also bitte der Fehler?? Ich rauf mir hier schon die Haare \*g\*  
  
Du solltest lieber so prüfen:  
  
~~~perl
if(!defined($ENV{QUERY_STRING}) || $ENV{QUERY_STRING} eq "") {  
  print "<b>Dem Script wurden keine Daten &uuml;bergeben!</b>\n";  
}

再见,
 克里斯蒂安