Les tableaux
Résolu
Synerz
Messages postés
1341
Statut
Membre
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je travaille sur du Perl en ce moment puisque j'en ai besoin pour mes futurs cours mais j'ai une question.
Est ce que "Foreach" fonctionne pour afficher un tableau à plusieurs entrés ? Exemple
Quand j’exécute ce programme j'ai cette erreur : "ARRAY(0xe5b358)ARRAY(0xe5b508)ARRAY(0xd047f8)"
Il y a surement une autre façon de faire non ?
Merci d'avance
--
Un peu d'aide contre un topic résolu !
Je travaille sur du Perl en ce moment puisque j'en ai besoin pour mes futurs cours mais j'ai une question.
Est ce que "Foreach" fonctionne pour afficher un tableau à plusieurs entrés ? Exemple
use strict;
use warnings;
my @noms = (
[ "fred", "barney" ],
[ "george", "jane", "elroy" ],
[ "homer", "marge", "bart" ],
);
foreach my $n (@noms) {
print $n;
}
<>
Quand j’exécute ce programme j'ai cette erreur : "ARRAY(0xe5b358)ARRAY(0xe5b508)ARRAY(0xd047f8)"
Il y a surement une autre façon de faire non ?
Merci d'avance
--
Un peu d'aide contre un topic résolu !
1 réponse
-
Salut,
Désolé de la réponse tardive.
Tu as un tableau qui contient 3 tableaux. Les 3 éléments qui sont affichés par ta boucle sont des références à ces tableaux.
Pour afficher les tableaux pointés par ces références, il suffit d'utiliser l'opérateur @ pour les déréférencer et de faire un foreach sur chaque tableau.
Comme cela :
#!/usr/bin/perl use strict; use warnings; my @noms = ( [ "fred", "barney" ], [ "george", "jane", "elroy" ], [ "homer", "marge", "bart" ], ); foreach my $n (@noms) { foreach my $o (@$n) { print $o . "\n"; } }
Alternativement, tu peux installer List::Flatten avec CPAN, et tu pourras "aplatir" une liste qu'elle contienne ou pas des tableaux dans tout ou partie de ses éléments (ou List::Flatten::Recursive si tu peux avoir des tableaux de tableaux de tableaux...).
Dal