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



Subsecciones
Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19