Mettre un tableau dans une hash ? - Perl - Programmation
Marsh Posté le 25-06-2006 à 20:42:11
tu ne peux maitre qu'un scalar en valeur dand une hash, donc ici si tu veux y mettre un tableau il faut mettre un scalair contenant une reference vers ce tableau:
dans ta hash:
ZoneHumie => \@zonehime
et ensutie pour y acceder: $ptr->{ZoneHumide}->[0] (on peut meme virer la deuxieme fleche dans ce cas precis, mais il vaut mieux la laisser pour mieux comprendre ce qui se passe)
De meme, pour des raisons d'efficacité, je te conseil de plutot retourner une reference de ta hash plutot que la hash entiere, pour eviter une copie inutile de celle ci:
return \%retour;
...
my $valeur_ref = $ema->analyseBrute;
$ema->analyseTextuelle($valeur_ref);
Marsh Posté le 25-06-2006 à 23:30:37
il veut lire/ecrire une liste dans une hash, pas obtenir la liste des clés/valeurs
Marsh Posté le 04-09-2006 à 15:31:15
ReplyMarsh Posté le 04-09-2006 à 15:40:35
pospos a écrit : tu ne peux maitre qu'un scalar en valeur dand une hash, donc ici si tu veux y mettre un tableau il faut mettre un scalair contenant une reference vers ce tableau: |
Ok. Voici un autre code pour lequel le problème est un poil différent. A chaque itération je réinitialise le tableau @tab alors forcemment ça ne joura plus avec les pointeurs. Comment faire ?
Code :
|
Marsh Posté le 04-09-2006 à 17:03:18
moi je sens plutot l'algo foireux !!!
Il sort d'ou ton $accession? Vu que tu ne le changes jamais au cours de tes itérations ton
Code :
|
met toujours tout sur la même clé
Mais bref dans ce cas précis, n'utilise pas de tableau mais directement un référence sur celui-ci! Petit exemple ( je reprends pas ton code que je trouve fort étrange ):
Code :
|
Marsh Posté le 04-09-2006 à 17:07:01
Ben mon $ accession est extrait du résultat d'une requete sur une BDD via $cursor->fetchrow.
Mon code marche nickel (sauf qu'à la ligne 12 c'est $acPrecedent et non pas $accession), sauf le problème d'insertion de la bonne valeur de pointeur dans la hash.
Je vais regarder ton code tranquillement à la maison.
Marsh Posté le 25-06-2006 à 17:58:11
Bonjour,
J'ai le code suivant :
(la première ligne ici appelle la fct dont l'extrait est ci-dessus)
puis dans ma fonction analyseTextuelle, j'ai :
Or rien ne s'affiche dans mon print.
Question logique alors : comment accéder à l'element i d'un tableau mis dans une hash ?
Merci beaucoup
Message édité par greeeg le 25-06-2006 à 17:59:35