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![]()





Répondre avec citation

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 

Partager