Le 18/05/12 20:47, Marc Espie a écrit :
Je m'a gourré de ng, je pensais être sur l'anglais, mais c'est mieux
ainsi :-)
Merci de ta réponse, ça m'avance, mais ça ne marche pas encore comme je
le voudrais. Pas d'erreur de syntaxe, mais ça ne marche pas :
#! /usr/bin/perl -w
use Data::Dumper;
my %tbl = (
k1 => { name => 'n1', list => [qw(a b c)] },
k2 => { name => 'n2', list => [] },
k3 => { name => 'n3', list => [qw(e)] }
);
my $key = 'k1';
push @{$tbl->{$key}{list}}, 'd';
print Dumper(\%tbl), "\n";
foreach $key (keys %tbl) {
my $name = $tbl{$key}{name};
print "Name of $key : $name\n";
print "list:\n";
foreach $i (@{$tbl->{$key}{list}}) {
print "$i\n";
}
@{$tbl->{$key}{list}} = [];
}
print Dumper(\%tbl), "\n";
Le push ne semble rien faire, le premier Dumper affiche "a b c" mais pas
"d".
La deuxième boucle foreach, affiche uniquement le "d". D'où vient-il si
le Dumper ne l'a pas affiché ?
L'effacement de chaque liste dans la boucle ne semble pas marcher car le
deuxième Dumper affiche aucun changement. Et si on refait la grande
boucle foreach en fin de script, l'affichage n'est pas vide et se fait mal.
--
Éric Lévénez -- <
http://www.levenez.com/>
Unix is not only an OS, it's a way of life.