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 :

Problème de variables non initialisées


Sujet :

Langage Perl

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut Problème de variables non initialisées
    Bonjour
    J'ai un gros problème de script en effet, il génère énormément d'erreur dans le fichier log.
    Voici la partie du script
    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
    18
    19
    20
    21
    22
    23
    24
    else {
          if ( $sort_pref eq "catalogue" ) {
            $outil = $connDB->selectrow_array("SELECT b.methode FROM catalogues a, domaines b WHERE a.id_dom=b.id_dom AND catalogue='$PrevRupt';");
            if ($outil==0){
              $Title="Catalogue/Master $PrevRupt";
            }
            if ($outil==1){
              $Title="Catalogue $PrevRupt";
            }
            if ($outil==2){
              $Title="Master $PrevRupt";
            }
            if ($outil==3){
              $Title="Site $PrevRupt";
            }
            if ($outil==4){
              $Title="Utility Node $PrevRupt";
            }
          }
          else {
            $Title= "$sort_pref $PrevRupt";
    	$affniv = 1;
          }
        }
    Le probleme survient quand la variable $sort_pref est different de catalogue, aucun problème dans le cas contraire.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 483.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 485.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 486.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 487.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 488.
    Pour information, la ligne 483 correspond à
    La question est : Pourquoi, je reçoit ces messages d'erreur alors qu'il ne devrait pas passer dans la boucle.
    D'avance merci pour votre aide
    Si tu tapes ta tête contre une cruche et que ça sonne creux,n'en déduis pas que c'est la cruche qui est vide.

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Points : 322
    Points
    322
    Par défaut
    Quelle boucle ?
    Es-tu sûr des numéros de tes lignes d'erreur ?

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Voici le script avec l’indentation sous vi
    483 if ($outil==4){
    484 $Title="Utility Node $PrevRupt";
    485 }
    486 }
    487 else {
    488 $Title= "$sort_pref $PrevRupt";
    489 $affniv = 1;
    La boucle concernée c'est celle qui commence au premier else {
    qui teste si la variable $sort_pref est égale à catalogue.
    Cordialement
    Si tu tapes ta tête contre une cruche et que ça sonne creux,n'en déduis pas que c'est la cruche qui est vide.

  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
    Si la question est: pourquoi y-a-'il ce message ?, la réponse est: probabblement parce que $PrevRupt n'est pas initialisé. Peut-être que mettre un
    éliminerait le message.

    Si la question est: pourquoi est-ce que ça rentre dans la boucle, je crois qu'il est impossible pour nous de répondre en l'état.

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Bonjour

    Toujours pas reussi à ressoudre mon probleme.
    Meme apres avoir mis la fonction complete en commentaire, il me la ressort comme meme en erreur. Donc là, je seche completement.
    Si tu tapes ta tête contre une cruche et que ça sonne creux,n'en déduis pas que c'est la cruche qui est vide.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2011
    Messages : 26
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Une question qui va te paraître plutôt bête mais es-tu dans le bon script ? Car dans tes messages d'erreur, tu as une erreur aussi sur la ligne 485. Or la ligne 485 ne contient qu'un "}" !
    Surtout que tu dis avoir tout mis en commentaire et que les erreurs continuent !

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Non, je ne me trompe pas de fichier car dans la trace, il donne explicitement son nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 483.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 484.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 485.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 486.
    Use of uninitialized value in array element at /data/infsvg/apache/perl/app/supervision.pl line 487.
    Voici le detail du script
    483 ### if ($outil==4){
    484 ### $Title="Utility Node $PrevRupt";
    485 ### }
    486 ### }
    487 ### else {
    Si tu tapes ta tête contre une cruche et que ça sonne creux,n'en déduis pas que c'est la cruche qui est vide.

  8. #8
    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
    perl -d est ton ami. Soit ton erreur est avant (une erreur de quote ou je ne sait quoi), soit tu n'exécute pas le bon script.

  9. #9
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Merci pour votre aide.
    Aprés plusieurs recherches, je me rends compte que c'est lors de l'ajout de cette partie de script que je reçois ces messages.
    Voir ci-dessous:
    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
    18
    19
    20
    21
    if ($affniv == 1){
          if ($array[$k][5] == 1) {
          $idsox = "/database/images/serv_sox.png";
          $TITSX = "Application dans le domaine SOX";
          }
          if ($array[$k][7] == 0) {
          $idniv = "/database/images/transp.png";
          $TITNV = "";
          }
          if ($array[$k][7] == 3) {
          $idniv = "/database/images/bronze.png";
          $TITNV = "Niveau de service Bronze"; }
          if ($array[$k][7] == 2) {
          $idniv = "/database/images/argent.png";
          $TITNV = "Niveau de service Argent";
          }
          if ($array[$k][7] == 1) {
          $idniv = "/database/images/or.png";
          $TITNV = "Niveau de service Or";
          }
       }
    En resumé si l'affichage du niveau de service est activé,je controle la valeur du niveau de service qui peut avoir les valeurs 0,1,2,3 et j'affichage une icone particuliére. Je controle aussi que l'application se trouve ou non dans le domaine Sox et j'affiche egalement une icone particuliere.
    Si je supprime ce if, je n'ai plus les messages d'erreurs
    Si tu tapes ta tête contre une cruche et que ça sonne creux,n'en déduis pas que c'est la cruche qui est vide.

Discussions similaires

  1. Problème de variable non déclarée
    Par jncoffy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 24
    Dernier message: 06/06/2007, 11h01
  2. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  3. problème de variable non identifié
    Par teen6517 dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2007, 19h35
  4. erreurs de variables non initialisées
    Par setsuko974 dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2007, 09h26
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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