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 récupérer les valeurs dans une Hash


Sujet :

Langage Perl

  1. #1
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut Problème récupérer les valeurs dans une Hash
    Bonjour,

    Mon problème et que je n'arrive pas a récupérer les valeurs de ma table de hachage lorsque ma clé est une variable temporaire, par contre quand celle-ci est en dure ça marche...Ce n'est pas une erreur de clé puisque quand je print ma variable temporaire j'ai bien la clé correspondante...

    Voici un bout de mon 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
    my @tab = .... ;
    my %hash = .....;
    my $vartmp;
     
    while ( scalar @tab > 0)
    {
      $vartmp = shift @tab;
      my $val = $hash{$vartmp};
      print $vartmp ; # j'ai bien ma clé
      print $val; # ça ne m'affiche rien ...
     
      my $val = $hash{"key_en_dur"};
      print $val; # la OK
    }
    Voila j'ai essaye $hash{"$vartmp"}; $hash{"".$vartmp.""}; etc... un peu tout et n'importe quoi je ne vois pas d'ou ça peut venir...

    Si quelqu'un a une idée.

    pym.

  2. #2
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Es-tu certain que ta clé est définie dans ta hash ? utilise les pragmas "use strict" et "use warnings".

    Ensuite, affiche la valeur de $vartmp, pour voir ce qu'il y a dedans exactement...

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  3. #3
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Déja fait...

    J'ai meme copier coller la clé que $vartmp avais affiché en console, pour l'utilisé en dur et comme par magie ça marche...C'est pour ca que je suis assez surpris que ca ne fonctionne pas a cet endroit alors que ça fonctionne trés bien avec d'autre variable dans une autre partie mon code...

    Cela ne viendrai pas du shift ? il y a peut être un \0 ou espace qui traine?

  4. #4
    Membre du Club Avatar de pymouse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Voila c'est résolu ...

  5. #5
    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
    Dans les cas de ce genre (où l'on a un doute sur la valeur d'une variable), "print $vartmp" est très insuffisant pour vérifier la valeur de $vartmp (comme tu l'as découvert...), "print "<$vartmp>"" est déjà mieux, mais le top c'est d'utiliser Data::Dumper, qui te dira exactement ce que ta variable contient (caractères invisibles, espaces...).

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer les valeurs dans une requête
    Par JeanNoel53 dans le forum JDBC
    Réponses: 23
    Dernier message: 30/04/2015, 20h02
  2. [Débutant] Récupérer les valeurs dans une structure
    Par Kichott dans le forum MATLAB
    Réponses: 6
    Dernier message: 05/08/2009, 08h37
  3. Récupérer les valeurs dans une PropertyInfo
    Par Psycadi dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2008, 12h17
  4. Récupérer les valeurs dans une fonction
    Par matmay dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/05/2007, 16h50
  5. Réponses: 11
    Dernier message: 26/04/2007, 10h40

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