Use of uninitialized value in string ne at ./myscript.pl line 78

Use of uninitialized value in string ne at ./myscript.pl line 78 - Perl - Programmation

Marsh Posté le 24-03-2009 à 16:17:02    

Salut,
 
Voila j'ai un script, dans le quel je fais un test sur une variable,
comme ceci
 
if ($DBI::errstr ne "" ) then ...
 
le problème est que si $DBI::errstr est vide, alors j'ai ceci
 
Use of uninitialized value in string ne at ./myscript.pl line 78
 
comment pourrai je faire pour ne pas avoir ceci à l'affichage ?
 
Merci.

Reply

Marsh Posté le 24-03-2009 à 16:17:02   

Reply

Marsh Posté le 24-03-2009 à 16:48:41    

defined()

Reply

Marsh Posté le 24-03-2009 à 16:49:38    

attention aux définitions ! $DBI::errstr n'est pas vide mais est "non défini" (undef)

Reply

Marsh Posté le 24-03-2009 à 17:27:26    

du coup,
j'ai plus besoin de tester si c'est vide
mais de tester si c'est defini alors
if (defined($DBI::errstr))

Reply

Marsh Posté le 24-03-2009 à 17:30:38    

meme en testant if defined , il me met quand meme l'erreur,bizarre.

Reply

Marsh Posté le 24-03-2009 à 19:28:04    

en fait tu pars sur de mauvaises bases... $DBI::errstr n'est défini que si une fonction concernant ton instance de DBI s'est plantée, donc il faut tester le code retour de la méthode
Sur une connexion tu testes le code retour de DBI->connect et sur un execute tu testes le code retour de $xx->execute

Reply

Marsh Posté le 25-03-2009 à 09:30:21    

en faite pour l'execute et le prepare je l'avais fait, mais par contre je ne l'avais pas fait pour le connect , je viens de le modifier :
if (defined($dbh->errstr()))

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed