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
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 my $tableau; $tableau->{"1,1"} = 11; $tableau->{"1,2"} = 12; $tableau->{"1,3"} = 13; $tableau->{"2,1"} = 21;
c'est lourd et peu efficace.
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]; } }
J'ai pensé à essayer de trier le hash dont $tableau est la référence
Cela ne marche pas, puisque chaque case du hash est une clé différente.
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;
Alors je me demandais s'il était possible de faire pointer le hash vers un tableau à la place. Quelque chose du style
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my @data; $h{"$i,$j"} = \$data[$i][$j];
Quelqu'un aurait-il une piste?
Partager