Probleme de splice avec un tableau a 2 dimensions [PERL] - Perl - Programmation
Marsh Posté le 02-12-2010 à 14:26:06
Le soucis viens clairement de la ligne
Code :
|
la variable $replacement contient a chaque fois un truc comme ca:
ARRAY(0x40087cf8)
Elle devrait avoir une liste de valeur a la place
Marsh Posté le 02-12-2010 à 19:01:41
Si on pouvait voir le reste du code: définitions de @tab_temp, $nb_ligne, contenu de $tab_temp, on pourrait avoir une idée de la cause du pb.
A priori, si je pige bien, les éléments de @tab_temp sont des arrays? auquel cas, une réponse comme ARRAY(0x40087cf8) est tout à fait normale, $replacement étant défini comme un scalaire.
A+,
Marsh Posté le 03-12-2010 à 10:38:31
Salut merci pour ton aide.
Je pense que le code est loin d'etre propre (mes cours de dev sont loin...)
Code :
|
Le code que j'ai donné au depart a quelque peu changé du coup maintenant j'ai une erreur d'un autre type
Code :
|
Pour le contenu de tab_val et tab_temp se sont des tableaux de tableaux donc oui j'ai compris que ARRAY 0x ..... c'etait normal.
Marsh Posté le 03-12-2010 à 12:07:18
je pense avoir solutionné le probleme
splice (@tab_temp,$nb_ligne, 0, \@replacement);
un tableau a 2 dimensions, c'est un tableau de pointeur donc il faut lui passé une adresse de tableau et non des valeurs.
Reste a confirmer que tout fonctionne correctement
Marsh Posté le 03-12-2010 à 14:37:24
Citation : un tableau a 2 dimensions, c'est un tableau de pointeur donc il faut lui passé une adresse de tableau et non des valeurs. |
Perl 5 n'a pas de telle structure de données.
Il ne connait que les tableaux simples, dont les éléments sont des scalaires.
Si ces scalaires sont les adresses d'autres tableaux, on peut simuler la notion de tableau à 2 dimensions, mais cela n'a rien d'un type de données intrinsèque à Perl.
En perl 6, la notion de tableau multi dimensionnel a été ajoutée, et bien plus: http://perlcabal.org/syn/S09.html .
A+,
Marsh Posté le 02-12-2010 à 13:57:54
Bonjour, j'ai un soucis avec une insertion de ligne dans un tableau a 2 dimension.
Je m'explique, jutilise ce code pour faire mon insertion (qui est en faite une duplication de la ligne dans le tableau)
le soucis arrive quand je souhaite faire une modification sur une des lignes 2 lignes précédentes, la modification est répercuté sur les deux lignes en meme temps...
Je pense qu'il y a un soucis avec l'adressage lors de la définition de la variable $replacement mais je ne voie pas comment procéder autrement.
je ne sais pas si je suis bien clair
En vous remerciant d'avance
Message édité par dreamkiller le 02-12-2010 à 14:35:29