Práctica: Ordenación Internacional

El módulo Sort::ArbBiLex permite generar subrutinas de ordenación a partir de una especificación de agrupaciones de caracteres equivalentes.

como en el siguiente ejemplo:

lhp@europa:~/Lperl/src/perltesting$ cat -n spanishsort.pl
 1  #!/usr/bin/perl -w
 2  use strict;
 3  use Sort::ArbBiLex (
 4    european_sort => q{
 5      a A à À á Á â Â ã Ã ä Ä å Å æ Æ
 6      b B
 7      c C ç Ç
 8      ch CH cH Ch
 9      d D ð Ð
10      e E è È é É ê Ê ë Ë
11      f F
12      g G
13      h H
14      i I ì Ì í Í î Î ï Ï
15      j J
16      k K
17      l L
18      m M
19      n N
20      ñ Ñ
21      o O ò Ò ó Ó ô Ô õ Õ ö Ö ø Ø
22      p P
23      q Q
24      r R
25      s S ß
26      t T þ Þ
27      u U ù Ù ú Ú û Û ü Ü
28      v V
29      w W
30      x X
31      y Y ý Ý ÿ
32      z Z
33   }
34  );
35  my @stuff = european_sort(<>);
36
37  print foreach (@stuff);
Veamos un ejemplo de ejecución:

lhp@europa:~/Lperl/src/perltesting$ cat -n pruebaspanish.txt
     1  ñfñb
     2  nomo
     3  Chacina
     4  cerezo
     5  cz
     6  obde
     7  Choza
     8  óbde
     9  cáñamo
    10  aéae
    11  Dinamarca
    12  fgh
    13  ñame
    14  áéae
    15  ée
lhp@europa:~/Lperl/src/perltesting$ ./spanishsort.pl pruebaspanish.txt | cat -n
     1  aéae
     2  áéae
     3  cáñamo
     4  cerezo
     5  cz
     6  Chacina
     7  Choza
     8  Dinamarca
     9  ée
    10  fgh
    11  nomo
    12  ñame
    13  ñfñb
    14  obde
    15  óbde
Escriba un programa que reciba como entrada un fichero de texto y dos números y ordene de acuerdo a los criterios de ordenación del español las líneas comprendidas entre esos dos números. Si no se proporcionan números ordenará todo el fichero. Si sólo se proporciona un número ordenará desde esa línea hasta el final del fichero.

$ spsort resumen.txt 10 30 # ordenar líneas entre la 10 y la 30
$ spsort resumen.txt 30    # de la 30 en adelante
$ spsort resumen.txt       # ordenar todo resumen.txt

Véase también



Subsecciones
Casiano Rodríguez León
2009-10-04