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 :

beug sur un code retour


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut beug sur un code retour
    lorsque je lance ce code, j'ai le message d'erreur suivant :Use of uninitialized value in numeric ne (!=) at :\TEMP\OC\essai1.pl line 4.


    system("$BatchEXE") ;
    $CodeRetour = $? ;

    if ( ${CodeRetour} != 0) {
    $MsgErreur="Erreur : Le Bath a rencontre une erreur\n" ;
    }
    else
    {
    print "c'est bon" ;
    }
    merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Citation Envoyé par vince2005
    lorsque je lance ce code, j'ai le message d'erreur suivant :Use of uninitialized value in numeric ne (!=) at :\TEMP\OC\essai1.pl line 4.
    Ce message apparait généralement lorsque ton script active le flag -w (warnings) sur sa première ligne (le shebang) et il est explicite : utilisation d'une variable ne contenant rien dans une comparaison numérique.

    Ta variable $CodeRetour est indéfinie (undef).

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut variable en undef
    Oui en effet, au début de mon script, j'ai activé le flag -w.

    Ma variable est défini ainsi :

    My $CodeRetour;

    Donc si je veux palier à ce probléme d'affichage, il faut que je définisse ma variable en undef

    undef %CodeRetour;

    ou puis je encore faire my $CodeRetour="";


    Pourtant quand j'execute avec la commande system, qu'il y est une erreur ou non, j'ai quand meme un code retour, qui par conséquent n'est pas vide.


    Merci pour vos réponses

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 605
    Par défaut
    Je crois que tu te mélanges un peu entre les scalaires et les tableaux associatifs (ou encore hash)

    $CodeRetour est un scalaire
    %CodeRetour est un hash

    As-tu activé use strict; au début de ton code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    system("$BatchEXE") ;
    $CodeRetour = $? ;
     
    if ( ${CodeRetour} != 0) {            # <------ ${CodeRetour} ???
        $MsgErreur="Erreur : Le Bath a rencontre une erreur\n" ;
    }
    else {
        print "c'est bon" ;
    }
    si pas fait, active le, tu devrais avoir au moins un autre message d'erreur

  5. #5
    Expert confirmé
    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
    Par défaut
    Tu veux probablement faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    my $CodeRetour = system("$BatchEXE") ; ;
     
    if ( $CodeRetour != 0) {
        $MsgErreur="Erreur : Le Bath a rencontre une erreur\n" ;
    }
    else {
        print "c'est bon" ;
    }
    --
    Jedaï

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut voici mon code
    J'ai toujours un message d'erreur, que je déclare

    $CodeRetour = undef ;
    my $CodeRetour = "" ;
    my $CodeRetour ;

    message d'erreur :
    Argument "" isn't numeric in numeric eq (==) at.....

    use strict;
    use warnings;

    my $CodeRetour = "" ;
    system("C:/system/toto.exe") ;
    $CodeRetour=$? ;

    if ( ${CodeRetour} == 0)
    {
    print "On est bon" ;
    }
    else
    {
    print "erreur" ;
    }

Discussions similaires

  1. Convention sur les codes de retour des scripts
    Par NewTone dans le forum Linux
    Réponses: 0
    Dernier message: 19/11/2009, 00h54
  2. Positionner un code retour sur un chargement d'APPLET ?
    Par Bighobbit dans le forum Applets
    Réponses: 2
    Dernier message: 29/09/2006, 11h02
  3. [PC] Code retour cobol microfocus sur netexpress
    Par Titouf dans le forum Cobol
    Réponses: 1
    Dernier message: 05/10/2005, 21h13
  4. code retour UNIX sur erreur ORA
    Par vinz_07 dans le forum Administration
    Réponses: 7
    Dernier message: 25/08/2004, 11h04
  5. [commande DOS] Récupérer le code retour d'un programme
    Par bobunny dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 04/06/2004, 15h51

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