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 :

Probleme de Hash


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Par défaut Probleme de Hash
    Bonjour à tous,
    je me sens encore débutant dans PERL, bien qu'ayant progressé, cependant qqchose m'embête encore sur les tableau Hash, et j'avoue qu'après avoir cherché, j'ai pas trouvé la réponse qui me correspond, ou tout du moins qui me permette de comprendre. Voic mon problème que je pense simple, maisje n'y arrive pas alors je tente la question.
    J'ai un tableau "hash" source comme suit :
    Hash source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my %HashReferenceComplex = (
      'niv1' => 'valeur 1',
      'niv2' => [ 'case0', 'case1', 'case2', 'case3' ],
      'niv3' => {
        'niv3-1_a' => 'valeur3-1',
        'niv3-1_b' => [ 'case0-1', 'case1-1', 'case2-1', 'case3-1' ],
        'niv3-1_c' => { 'niv3-2_a' => 'test', },
      },
      'niv4' => \&FonctionBonjour,
    ---------------------------------------
    et je souhaiterais
    soit ce tableau hash cible, le premier niveau est changé (niv1 devient niva, ..)
    Hash cible 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my %HashReferenceComplex = (
      'niva' => 'valeur 1',
      'nivb' => [ 'case0', 'case1', 'case2', 'case3' ],
      'nivc' => {
        'niv3-1_a' => 'valeur3-1',
        'niv3-1_b' => [ 'case0-1', 'case1-1', 'case2-1', 'case3-1' ],
        'niv3-1_c' => { 'niv3-2_a' => 'test', },
      },
      'nivd' => \&FonctionBonjour,
    ---------------------------------------------------------------------
    soit ce tableau hash cible 2, ou j'ai ajouté un niveau en début (niv-1a, niv-2b...)
    Hash cible 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    my %HashReferenceComplex = (
      niv-1a => {
    	'niv_a' => 'valeur 1',
      niv-2b => {
    	'niv2' => [ 'case0', 'case1', 'case2', 'case3' ],
      niv-2b => {
    	'niv_b' => {
        		'niv3-1_a' => 'valeur3-1',
        		'niv3-1_b' => [ 'case0-1', 'case1-1', 'case2-1', 'case3-1' ],
        		'niv3-1_c' => { 'niv3-2_a' => 'test', },
      		},
      niv-2b => {
    	'nivc' => \&FonctionBonjour,
    ------------------------------------------
    Si quelqu'un pouvait m'aider je l'en remercierais infiniment
    Bonne soiré à tous

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Utilise les balises CODE ça rendra ton message plus lisible.

    Tu peux utiliser quelque chose de ce genre afin de renommer tes clés :
    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
    my %correspond = (
    	'niv1' => 'niva',
    	'niv2' => 'nivb',
    	'niv3' => 'nivc',
    	'niv4' => 'nivd',
    );
     
    foreach my $k (keys %HashReferenceComplex){
     
    	# nouvelle clé
    	$HashReferenceComplex{$correspond{$k}} = $HashReferenceComplex{$k};
     
    	# suppression ancienne clé
    	delete $HashReferenceComplex{$k};
    }
    Tu as également un module pouvant t'aider mais je ne l'ai jamais utilisé
    Hash::Rename - Rename hash keys

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Par défaut
    Bonjour à tous,
    tout d'abord un grand merci à Jasmine80 pour m'avoir mis sur le chemin de la solution , j'ai mis un peu de temps à répondre car comme je n'avais pas tout capté, il m'a fallu faire plusieurs essais, mais maintenant j'ai réussi et le plus important : J' AI COMPRIS . Je mets un terme à ma question et encore MERCI
    Bon week-end à tous

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

Discussions similaires

  1. [LINQ] probleme de hash avec sha1
    Par lamouche42 dans le forum C#
    Réponses: 1
    Dernier message: 20/04/2013, 17h40
  2. Probleme sort hash
    Par loula427 dans le forum Langage
    Réponses: 7
    Dernier message: 24/03/2010, 16h39
  3. Probleme de hash
    Par Pauli dans le forum Langage
    Réponses: 1
    Dernier message: 10/12/2007, 14h18
  4. [langage] [PERL] problème de hash
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2006, 09h16
  5. [langage] probleme avec un hash de hash
    Par planetevoyage dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2003, 12h55

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