[RESOLU]Génération d'une hash de hash de tableau
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| %traces = (
rep1 => {
f1 => ["t1","t2","t3"],
f2 => ["t1","t2"],
},
rep2 => {
f1 => ["t1","t2","t3","t4"],
f2 => ["t1","t2"],
f3 => ["t1","t2"],
},
rep3 => {
f1 => ["t1","t2"],
f2 => ["t1","t2"],
f3 => ["t1","t2"],
},
); |
j'essais d'ajouter un element à ma hash
Code:
$traces{"rep4"}{"f1"} =["t1","t2"];
puis j'affiche le tout:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| foreach $repertoire ( keys %traces )
{
print "$repertoire: { ";
for $fichier ( keys %{ $traces{$repertoire} } )
{ print $fichier."=( ";
foreach $i ( 0 .. $#{ $traces{$repertoire}{$fichier}} )
{
print "$traces{$repertoire}{$fichier}[$i], ";
}
print "}\n";
}
print "}\n";
} |
ça fonctionne bien ...
affichage
rep1{
f1={t1,t2,t3}
f2={t1,t2}
}
rep2{
f1={t1,t2,t3,t4}
f2={t1,t2}
f3={t1,t2}
}
rep3{
f1={t1,t2}
f2={t1,t2}
f3={t1,t2}
}
rep4{
f1={t1,t2}
}
Par contre ce code ne fonctionne pas
Code:
1 2 3
| my @t=["t1","t2"];
$traces{"rep4"}{"f1"} =[ @t ]; |
affichage pour rep4
rep4{
f1={ARRAY(0x1a62b68)}
}
est ce que quelqu'un peux m'aider?
Merci d'avance
Re: Génération d'une hash de hash de tableau
Citation:
Envoyé par antigone
Par contre ce code ne fonctionne pas
Code:
1 2 3
| my @t=["t1","t2"];
$traces{"rep4"}{"f1"} =[ @t ]; |
affichage pour rep4
rep4{
f1={ARRAY(0x1a62b68)}
}
est ce que quelqu'un peux m'aider?
Merci d'avance
Pourquoi anonymiser deux fois la référence sur la liste ?
Soit tu fais
Code:
1 2
| my $t=["t1","t2"];
$traces{"rep4"}{"f1"} = $t; |
Et $t est une référence anonyme (pas tant que ça) à la liste ("t1", "t2").
Soit tu fais
Code:
1 2
| my @t=("t1","t2");
$traces{"rep4"}{"f1"} = [ @t ]; |
Et @t est une liste, que tu prends en référence anonyme pour ranger dans ton hash