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
 
