« Programmation Perl/Fonctions sur listes » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 260 :
=== sort : ordonne une liste ===
<source lang="perl">
#!/usr/bin/perl
use strict;
use warnings;
my @tableau = qw(9 -.2 -4 34 -7 0 111);
# tri implicitement alphabétique
my @tri = sort @tableau;
# tri explicitement alphabétique
@tri = sort ({$a cmp $b} @tableau);
# tri inverse alphabétique
@tri = sort ({$b cmp $a} @tableau); # autre syntaxe : @tri = reverse sort @tableau;
# tri explicitement numérique
@tri = sort ({$a <=> $b} @tableau);
# tri inverse numérique
@tri = sort ({$b <=> $a} @tableau);
# tris tarabiscotés sans intérêt autre que montrer les possibilités de "sort"
Ligne 293 ⟶ 289 :
@tableau = qw(3 1 6 5 3 1 6 5);
# tri croissant sur une moitié, décroissant sur l‘autre
my $moitie = scalar @tableau / 2; # scalar est facultatif : my $... = environnement scalaire
@tri = ((sort ({$a <=> $b} splice (@tableau,0,
print "@tri\n";# 1 3 5 6 6 5 3 1
@tableau = qw(9 -.2 -4 -14 -7 0 11);
# tri aux normes croissantes
@tri = sort ({abs $a <=> abs $b} @tableau);
@tableau = qw(ab a abcd abc abcde);
# tri aux longueurs décroissantes
@tri = sort ({length $b <=> length $a} @tableau);
</source>
|