Bonjour,

Je parts d'un tableau contenant des données de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
["24/11/2007", "a", 1, 2, 3, 4];
["24/11/2007", "b", 5, 6, 7, 8];
["24/11/2007", "c", 9, 10, 11, 12];
["25/11/2007", "d", 10, 20, 30, 40];
["25/11/2007", "e", 50, 60, 70, 60];
Je souhaite obtenir une table de hachage qui pour une date donnée lui associerait comme valeur un tableau dont les valeurs sont des références vers d'autres tableaux.
Et donc, en partant des données que j'ai pris comme exemple, j'obtiendrais comme affichage en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
24/11/2007 : a 1 2 3 4
b 5 6 7 8
c 9 10 11 12
25/11/2007 : d 10 20 30 40
e 50 60 70 60
Voici le code que j'ai écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!usr/bin/perl -w
use strict;
 
my $ref1 = ["24/11/2007", "a", 1, 2, 3, 4];
my $ref2 = ["24/11/2007", "b", 5, 6, 7, 8];
my $ref3 = ["24/11/2007", "c", 9, 10, 11, 12];
my $ref4 = ["25/11/2007", "d", 10, 20, 30, 40];
my $ref5 = ["25/11/2007", "e", 50, 60, 70, 60];
 
#insertion des données dans le tableau
my @tab = ();
push(@tab, $ref1);
push(@tab, $ref2);
push(@tab, $ref3);
push(@tab, $ref4);
push(@tab, $ref5);
 
 
#table de hachage avec comme clé une date et comme valeur une référence vers un tableau
my %date_tab = ();
 
#reference vers un tableau
my $ref;
 
#parcours du tableau pour récupérer les infos à ajouter dans la table de hachage
foreach my $datas(@tab){
	$ref = [$$datas[1], $$datas[2], $$datas[3], $$datas[4], $$datas[5]];
	$date_tab{$$datas[0]} = [$ref];
}
 
while(my ($cle,$valeur) = each(%date_tab)){
   print "$cle : ";
   foreach my $data(@$valeur){
		print "$$data[0] $$data[1] $$data[2] $$data[3] $$data[4]\n";
   }
}
Le soucis que j'ai, c'est que je n'arrive pas à savoir comment faire pour ne pas écrasé les données pour obtenir ce que je souhaite.

En sortie, j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
25/11/2007 : e 50 60 70 60
24/11/2007 : c 9 10 11 12
Merci