01: #!/usr/bin/perl 02: 03: 04: @p = (); # Table de références à des points. 05: 06: open(DAT,"xy.dat"); # Ouverture en lecture seule du fichier xy.dat 07: while (<DAT>) { # Lecture ligne par ligne du fichier (handle DAT) 08: chomp; # Suppresion des blancs finaux, y compris le retour à la ligne 09: s/^\s*//; # Suppression des blancs initiaux (remplacement des blancs par rien...) 10: my $r = {}; # Création d'une référence vide... 11: ($r->{x},$r->{y}) = split /\s+/; # Découpage de la ligne, le séparateur est une succession de blancs. 12: push @p, $r; # Ajout de $r à la table des points. 13: } 14: 15: # Tri de la liste des points selon x. 16: @p = sort { $a->{x} <=> $b->{x} } @p; 17: 18: # Construction des tables des x et y. 19: @xi = (); 20: @yi = (); 21: foreach (@p) { 22: push @xi, $_->{x}; 23: push @yi, $_->{y}; 24: } 25: 26: # Affichage des tables pour le test. 27: print join(";",@xi),"\n"; 28: print join(";",@yi),"\n"; 29:
Le fichier de données xy.dat puis les données lues et triées:
-3;-2;1;2;3;4;5 2;0.5;-1;-1;0;2;4