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
