Petit problème avec un hash, des tableaux et des références - Perl - Programmation
Marsh Posté le 09-12-2008 à 14:43:43
Citation : my ($this, @columns, $row) = @_; |
Ca ne peut pas marcher, ça.
ton second element @columns tout bouffer de @_ (sauf sa premiere valeur, assignée a $this), et $row sera toujours vide.
A+,
Marsh Posté le 09-12-2008 à 15:02:08
Citation : Pour simplifier ce code j'aimerai soit savoir s'il existe une methode de l'objet CSV qui renvoi directement un tableau Hash avec les clefs issu de la premières lignes du CSV. (J'en doute). |
Il me semble qu'il suffit de lire la doc de Text::CSV_XS pour trouver la réponse (si c'est bien ce module que tu utilises, cf un de tes précédents posts):
Tu fais pour la premiere ligne (je coupe colle le code a partir de la doc)
$csv->column_names ($csv->getline ($io));
puis pour chacune des lignes ensuite
$hr = $csv->getline_hr ($io);
et $hr est une reference a un hash, par exemple si toto est un nom de champ en premiere ligne, tu accedes a la valeur correspondante dans la ligne par $hr->{toto}
A+,
Marsh Posté le 09-12-2008 à 15:35:14
Je comprend maintenant pourquoi $row était vide, quand à la doc en effet, je l'ai pourtant lu mais dans la précipitation j'ai sauté les choses importantes
Merci beaucoup Gilou, encore une fois
Marsh Posté le 09-12-2008 à 12:27:28
Bonjour,
J'ai un soucis sur ce morceau de perl issu de mon programme :
Pour simplifier ce code j'aimerai soit savoir s'il existe une methode de l'objet CSV qui renvoi directement un tableau Hash avec les clefs issu de la premières lignes du CSV. (J'en doute).
Soit savoir si on peut comme en PHP construire un tableau associatif a partir de deux tableaux (un contenant les clefsn l'autre les valeurs), comme je fais là mais en une seule fonction peut-être déjà existante.
Pour l'instant j'ai essayé pour soulager cette portion en déportant la création de ce hash dans une fonction dont voici la tête :
Et dans cette fonction ce que je ne comprend c'est que si je fais un foreach sur @columns, je trouve dans la dernière case la référence vers le tableau "row".
Auriez vous quelques conseils ?
Merci d'avance?
Yellu
Message édité par yellu le 09-12-2008 à 12:28:41