Je suis nouveau à l'aide de perl et j'essaie de construire un hachage d'un hachage à partir d'un TSV. Mon processus actuel consiste à lire dans un fichier et à construire un hachage, puis à l'insérer dans un autre hachage.Construire hachage de hachage en perl
my %hoh =();
while (my $line = <$tsv>)
{
chomp $line;
my %hash;
my @data = split "\t", $line;
my $id;
my $iter = each_array(@columns, @data);
while(my($k, $v) = $iter->())
{
$hash{$k} = $v;
if($k eq 'Id')
{
$id = $v;
}
}
$hoh{$id} = %hash;
}
print "dump: ", Dumper(%hoh);
Ce sorties:
dump
$VAR1 = '1234567890';
$VAR2 = '17/32';
$VAR3 = '1234567891';
$VAR4 = '17/32';
.....
Au lieu de ce que j'attendais:
dump
{
'1234567890' => {
'k1' => 'v1',
'k2' => 'v2',
'k3' => 'v3',
'k4' => 'v4',
'id' => '1234567890'
},
'1234567891' => {
'k1' => 'v1',
'k2' => 'v2',
'k3' => 'v3',
'k4' => 'v4',
'id' => '1234567891'
},
........
};
Ma compréhension limitée est que lorsque je fais $hoh{$id} = %hash;
son insertion dans une référence à% hachage? Qu'est-ce que je fais mal? Y a-t-il aussi une façon plus succint d'utiliser mes colonnes et tableaux de données en tant que clés, paires de valeurs dans mon objet% hash?
-Merci à l'avance, Niru
Vous devrez également passer une référence lors de l'appel 'Dumper'. – cjm
Merci, cela a résolu mon problème. – Niru