IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Test sur variable "vide"


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Test sur variable "vide"
    Bonjour,

    j'ai un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    sub SOAP::Deserializer::typecast
    {
             my ($self, $value, $name, $attrs, $children, $type) = @_;
             my $retval = undef;
             print ("type = $type\n");
             if ( $type eq "" ) #ici la ligne 65 :)
             {
                     $retval = "";
             }else{
                     if ( $type eq "{urn:iControl}Common.EnabledState" )
                     {
                             $retval = $value;
                     }
            }
             return $retval;
    }
    le problème est que $type est parfois vide, et j'ai donc l'erreur :
    "Use of uninitialized value in concatenation (.) or string at (eval 113) line 65,

    je vois pas comment palier ce problème

    Merci pour votre aide !

    Thomas

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Est-ce que $type peut-être égal à '0' légitimement ?

    --
    Jedai

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (defined($type))
    {
    ... ton code ...
    }
    Ça devrait résoudre le problème.

    J.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Ce sont ces deux lignes qui osnt en cause, je pense.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      print ("type = $type\n");
      if ( $type eq "" ) #ici la ligne 65 :)
    ton print de debug rajoute au warning.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ((not defined $type) or ( $type eq "" )) #ici la ligne 65 :)
    ..
    En perl 5.10, il y a un moyen de l'écrire en une commande, mais je ne me rappelle pas bien.

Discussions similaires

  1. Cherche test sur variable
    Par nenekes dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/11/2006, 18h32
  2. test sur variable
    Par vince2005 dans le forum Langage
    Réponses: 5
    Dernier message: 18/07/2006, 13h19
  3. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo