El operador reverse toma los elementos de una lista y devuelve la lista en orden inverso:
DB<1> @a = 1..10 DB<2> @a = reverse @a DB<3> p "@a" 10 9 8 7 6 5 4 3 2 1
En un contexto escalar, cuando reverse es aplicado a una lista devuelve la cadena 
resultante de concatenar los elementos de la lista en orden
inverso:
  DB<6> @a = 1..10
  DB<7> $b = reverse @a
  DB<8> p $b
01987654321
  DB<9> @a = qw{one two three}
  DB<10> $x = reverse @a
  DB<11> p $x
eerhtowteno
Si se aplica a una cadena en un contexto escalar produce la recíproca de la cadena:
DB<29> q lhp@nereida:~/public_html/cgi-bin$ perl -wde 0 main::(-e:1): 0 DB<1> $a = "dabale arroz a la zorra el abad" DB<2> p scalar(reverse($a)) daba le arroz al a zorra elabad
Sin embargo, en un contexto de lista la cadena queda sin modificar:
DB<3> p reverse($a) dabale arroz a la zorra el abad
Tenga cuidado si esta trabajando en un entorno que usa UTF-8. En ese caso reverse puede producir un resultado erróneo:
lhp@nereida:~/Lperl/src$ perl -we 'print reverse("dábale arroz a la zorra el abad")."\n"'
daba le arroz al a zorra elab##d
Para solucionarlo es necesario usar el 
módulo  utf8  y poner el fichero de salida en modo
:utf8:
lhp@nereida:~/Lperl/src$ cat -n reverse.pl 1 #!/usr/local/bin/perl -w 2 use strict; 3 use warnings; 4 use utf8; 5 binmode STDOUT, ':utf8'; 6 my $x = shift || "dábale arroz a la zorra el abad"; 7 print reverse($x)."\n"; # Contexto escalar forzado por el "."Cuando se ejecuta se obtiene:
lhp@nereida:~/Lperl/src$ reverse.pl daba le arroz al a zorra elabád
Casiano Rodríguez León
