El siguiente ejemplo ordena los usuarios de un sistema unix atendiendo a su 
uid:
lhp@nereida:~/projects/perl/src$ cat -n sortperuid.pl
 1  #!/usr/bin/perl -w
 2  use strict;
 3  my @user =  grep { $_ !~ /^#/ } `cat /etc/passwd`;
 4  my (@name, @uid, $x);
 5
 6  for (my $i=0; $i < @user; $i++) {
 7    ($name[$i], $x, $uid[$i]) = split ':', $user[$i];
 8  }
 9
10  @name = @name[
11    sort {$uid[$a] <=> $uid[$b]} 0..$#name
12  ];
13
14  local $" = "\n";
15  print "@name\n";
En la línea 3 se obtiene en @user la lísta de líneas
no comentadas en /etc/passwd.
en las líneas 6-8 se inicializan los arrays @name
y @uid a los nombres (login) y uid de los usuarios
(campos primero y tercero de /etc/passwd).
Las líneas 10-12 ordenan primero la lista 0..$#name de acuerdo con el
valor de uid. El nuevo conjunto ordenado de índices es utilizado para 
reindexar el array name.
El operador sort  en un contexto escalar devuelve undef.
Casiano Rodríguez León
