Bonjour,

J'ai récemment beaucoup utilisé TableMatrix, qui est très pratique pour l'affichage de tableau.
Le problème principal pour moi, c'est le format de données nécessaire, que je trouve maladroit à utiliser, notamment pour les tris.
TableMatrix prend en entrée une référence de hash
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
my $tableau;
$tableau->{"1,1"} = 11;
$tableau->{"1,2"} = 12;
$tableau->{"1,3"} = 13;
$tableau->{"2,1"} = 21;
Jusqu'à présent, je triai en passant par un tableau temporaire et réécriture complète de $tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
my @t;
for (my $i=0; $i<$nb1; $i++){
	for (my $j=0; $j<$nb2; $j++){
		$t[$i][$j] = $tableau->{"$i,$j"};
	}  
}
sort @t;
for (my $i=0; $i<$nb1; $i++){
	for (my $j=0; $j<$nb2; $j++){
		$tableau->{"$i,$j"} = $t[$i][$j];
	}  
}
c'est lourd et peu efficace.
J'ai pensé à essayer de trier le hash dont $tableau est la référence
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
my %h;
$h{"1,1"}=11;
$h{"1,2"} = 12;
$h{"1,3"} = 13;
$h{"2,1"} = 21;
$tableau = \%h;
sort %h;
Cela ne marche pas, puisque chaque case du hash est une clé différente.
Alors je me demandais s'il était possible de faire pointer le hash vers un tableau à la place. Quelque chose du style
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
my @data;
$h{"$i,$j"} = \$data[$i][$j];
Je ne sais pas comment faire. Je pense que la difficulté viens de [0][15] vers {"0,15"}, c'est à dire convertir des indices en une clé. Mais je ne suis pas sûre.
Quelqu'un aurait-il une piste?