Perl propose la fonction sort() qui permet de trier des données
à un instant donné pour un besoin voulu, pourtant, dans le cas d'un
index par exemple, il peut être utile de maintenir de façon
permanente un tableau donné selon une méthode de tri donnée.
C'est ce que propose le module Tie::Array::Sorted en garantissant
que tous les élément insérés ou retrouvés avec les commandes
qui permettent de traiter un tableau resteront dans l'ordre voulu. Il
faut bien comprendre que pour que cela fonctionne, il faut utiliser les
commandes et non insérer un élément directement en fournissant
l'index d'entrée.
L'exemple qui suit prend sur STDIN des données alpha-numériques et les affiches dans l'ordre toutes les quatres lignes :
use Tie::Array::Sorted;
my @list;
tie(@list,'Tie::Array::Sorted',sub{$_[0] cmp $_[1]});
while(1) {
for(my $i = 0; $i < 4; $i++) {
my $value = <STDIN>;
chomp($value);
push(@list,$value);
}
while(my $line = shift(@list)) {
print $line ."\n";
}
}