Hâchages/Tableaux associatifs.
axl the mux a écrit :
sympa .....
en gros je veux attaquer differents niveaux d'un tableau associatif sans savoir le nombre de niveau de celui-ci.
$t=toto;
{ $ass{$t}} if ($niv == 1) { $ass{0100}{$t}} if ($niv == 2) .....
je cherche a faire une boucle pour remplacer les if car je ne connais pas le nombre de niveau .
merci d'avance
|
Je ne comprends vraiment pas ce que tu souhaites faire : stocker dans un tableau un hâchage ? Stocker dans un hâchage un tableau, voire des sous-hâchages ?
En fait, peux-tu expliquer l'algorithme que tu veux implémenter, ou plus simplement la problématique à résoudre ?
anapajari a écrit :
En gros tu as un truc comme ça:
Code :
- my $key = 'toto';
- my $niveau = 3;
- my @c = ('0010', '0100', '0200');
- my %ass;
- $ass{'toto'} = 1;
- $ass{'0010'}{'toto'} = 'X';
- $ass{'0010'}{'0100'}{'toto'} = 'Z';
- $ass{'0010'}{'0100'}{'0200'}{'toto'} = 8;
|
et $niveau varie et en fonction tu veux récupérer le bon?
En attendant que Popos ou Elmoricq te donne teh solution, tu peux toujours faire un truc comme ça:
Code :
- my $hr = \\%ass;
- for (my $i=0; $i<$niveau-1;$i++){
- $hr = $$hr{$c[$i]};
- }
- print $$hr{$key};
|
Mais je continue a penser que cela ne te permettra que de contourner un problème de conception dans ton bouzin!
|
Je veux bien proposer "teh solution", mais je pige pas ce qu'il veut faire, et j'avoue que ce que tu as écrit me laisse un peu perplexe aussi.
Je suis un peu comme toi, j'ai le sentiment qu'une fois qu'on aura dégagé le coeur du problème, on pourra trouver une solution toute simple.
Message édité par Elmoricq le 19-07-2006 à 23:31:48