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 :

tableau comme valeur dans un hash de hash


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut tableau comme valeur dans un hash de hash
    Salut.

    J'ai un problème d'accès à une information contenu dans un hash de hash.

    Je m'explique. j'ai déclaré et généré un hash de hash. Pour l'un des couples clé/clef/valeur j'ai besoin qu'elle prenne les valeur d'un tableau déjà existant. Voici la partie de mon code ou je déclare mon double hash
    (les ... représentent les champs de mon hash)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    open ("TMP" , "cmde syst |") or die ("Pb cmde lssyscfg : $! \n");
    	while (<TMP>) {
    		@tabPartition = split(',',$_);
    		$hashRess {$tabPartition[0]} = {default_profil => $tabPartition[1],
    					 					name => 'null',	  
    ...
    					 					io_slots => 'null'};# c'est la clé devant contenir mon tableau		 
    	}
    	close (TMP);
    je voulais savoir si ma déclaration est correcte.
    Par ailleurs, dans la suite de mon programme, je remplie les champs suite à divers traitements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #pour mon tableau j'ai la ligne suivante
    $hashRess{$cle}{io_slots} = @tabIO;
    Je ne sais pas comment afficher/accéder au premier élement contenu dans le champ $hashRess{$cle}{io_slots}.
    je croyais pouvoir le faire de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    print $hashRess{$cle}{io_slots[0]}; # erreur à la compilation : syntax error at ... near "io_slots["
    #ou
    print $hashRess{$cle}{io_slots}[0]; # erreur à la compilation : Can't use string ("6") as an ARRAY ref while "strict refs" in use at ...
    j'ai juste besoin de savoir comment accéder à une cellule.

    En esperant que mes axplications sont cohérentes.
    @+++
    kunu

  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
    Tu as fait une petite erreur lors de l'affectation de ton tableau à ta cellule : en effet il faut affecter la référence à ce tableau, pas le tableau lui-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $hashRess{$cle}{io_slots} = \@tabIO;
    et tu y accèdes ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $hashRess{$cle}{io_slots}[0]
    --
    Jedaï

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton astuce...
    Mais j'ai aussi fait un oubli dans mon explication.
    l'affectation se fait dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (<TMP>) {
    			@tabPartition = split(',',$_);
    			@tabIO = @tabPartition[9..$#tabPartition];
                            $hashRess{$cle}{io_slots} = \@tabIO;
    }
    ce qui fait que si j'utilise ton astuce je ferais référence au dernier tableau généré au cours de mon itération ... Enfin c'est comme ca que je le vois.
    or il faut qu'a chaque itération je récupère un tableau différent.
    Dis moi si j'ai bien analysé ton aide
    merci encore

Discussions similaires

  1. [AC-2007] Champ calculé comme valeur dans une requête analyses croisées avec une seule table
    Par The old fool dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/10/2014, 10h15
  2. [AC-2000] Bouton qui renvoi son nom comme valeur dans un champ idépendant
    Par therabbitkiller dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/11/2012, 12h07
  3. Réponses: 2
    Dernier message: 07/07/2010, 12h24
  4. Tableau de valeurs dans un objet et tableau d'objets
    Par emilie_t dans le forum Flash
    Réponses: 1
    Dernier message: 16/06/2007, 17h22
  5. [Tableaux] Tableau de valeurs dans $_POST
    Par chemindelavallee dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2007, 19h46

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