Bonjour,
J'ai besoin de votre aide concernant le remplissage de hash de hash tableau multidimension.
Je récupere les informations suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 toto toto07 TOTO_07 0 toto08 TOTO_08 0 toto05 TOTO_05 1 toto06 TOTO_06 1 truc truc01 TRUC_01 9 truc02 TRUC_02 9
Je souhaite avoir quelques choses comme:
Dans mon script perl :
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
16
17
18
19
20 $refhash = { toto => { 0 => [ [ toto07, TOTO_07 ] , [ toto08, TOTO_08 ] ] , 1 => [ [ toto05, TOTO_05 ] , [ toto06, TOTO_06 ] ] } truc => { 9 => [ [ truc05, TRUC_05 ] , [ truc06, TRUC_06 ] ] } } ;
Ce qui donne les codes suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 foreach (@lines) { # Je sparse les entrées # nom sera egal à truc ou toto, taille sera egal à 0,1,9 # name sera egal à truc_xx et rename TRUC_XX push @{$refhash->{$nom}->{$taille}} , [$name,$rename] ; } print Dumper($refhash) ;
Je n'ai pas l'impression que ce que je récupere soit comme je voulais.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 $VAR1 = { 'toto' => { '0' => [ [ 'toto07', 'TOTO_07' ], [ 'toto08', 'TOTO_08' ] ], '1' => [ [ 'toto05', 'TOTO_05' ], [ 'toto06', 'TOTO_06' ] ], }, 'truc' => { '9' => [ [ 'truc01', 'TOTO_01' ], [ 'truc02', 'TOTO_02' ] ] } };
Et puis je n'arrive pas à descendre en profondeur dans les tableaux à deux dimensions.
Merci pour votre aide
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
16
17 foreach my $j ( keys %{$refhash} ) { foreach my $k ( keys %{$refhash->{$j}} ) { print "$j $k \n"; if ( ref($refhash->{$j}->{$k}) eq "ARRAY" ) { print "Tableau\n"; foreach my $v (@{$refhash->{$j}->{$k}}) { print "$v\n"; } } } }
Partager