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 :

Accéder à la valeur d'une clé hash


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Points : 35
    Points
    35
    Par défaut Accéder à la valeur d'une clé hash
    Bonjour,
    je fais l'évaluation de données de test issues d'un enregistrement sur CANoe. une fonction d'une des librairies maison
    extrait ces données vers un table hash (voir fichier joint). La boucle ci-dessous issue de mon code d'évaluation présente un bug au niveau
    de la ligne 3.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    foreach my $time ( sort {$a <=> $b} keys %{$Signal_ref})
    {
       print"my signal: $Signal_ref->{$time} at t = $time \n";  # first test
     
       if (defined $Signal_ref->{$time})
       {
         my $SigValue{$time} = $Signal_ref->{$time}{'signal_1'};
         print"my values: $SigValue{$time} \n";
       }
     
    }
    En effet l'expression $Signal_ref->{$time} devrait me livrer signal_1 et message_1 conformément
    au hash mais à la place j'ai HASH<0xab3113fc>

    Quelqu'un a-t-il une idée?
    Merci!
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    L'évaluation de $Signal_ref->{$time} (si $time est une clé existante de $Signal_ref) va retourner une structure (une référence à un hash) dont les clés sont Signal_1 et Message_1.

    Pour accéder à Signal_1, il faut donc écrire $Signal_ref->{$time}->{Signal_1}
    Comme ce qui est référencé par Message_1 est également une structure (une référence à un hash), dont les clés sont DATA et DLC, il faudra également les déréférencer afin d'y accéder : $Signal_ref{$time}->{Message_1}->{DATA} et $Signal_ref{$time}->{Message_1}->{DLC}
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

Discussions similaires

  1. Accéder à la valeur d'une cellule d'une grid
    Par MadMax4 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 28/04/2010, 11h54
  2. Accéder à la valeur d'une Map
    Par manu f dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 16/03/2010, 14h53
  3. Accéder à la valeur d'une cellule d'un autre fichier excel depuis VBA
    Par guillaume7501 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/09/2008, 21h38
  4. Accéder à des valeurs d'une popup "fille" à partir du parent
    Par bobic dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/07/2007, 18h36
  5. [VB.Net][Excel]Accéder à la valeur d'une cellule
    Par DonF dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/09/2006, 12h09

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