El programa pasado como argumento es evaluado en la línea
56. Si contiene errores $@ contendrá el mensaje de
error (línea 57).
54  for (@ARGV) {
55      my $was = $_; # viejo nombre del fichero
56      eval $op;     # sustitución efectuada
57      die $@ if $@; # alto si la expresión es inválida
Si el nuevo nombre es igual al viejo no se hacen cambios:
58 next if $was eq $_; # ignore quietlyA menos que se especificara
--force 
no se renombra el fichero si existe ya uno con ese nombre:
59      if (-e $_ and !$force) # existe fichero con el 
60      {                      # nuevo nombre
61          warn  "$was not renamed: $_ already exists\n";
62      }
La evaluación en cortocircuito hace que si se especifico la opción --no-act 
no se ejecute rename:
63      elsif ($no_act or rename($was, $_)) # Se renombran mediante "rename"
64      {
65          print "$was renamed as $_\n" if $verbose;
66      }
67      else
68      {
69          warn  "Can't rename $was $_: $!\n";
70      }
71  }
Si $no_act es verdadero nunca se evalúa rename($was, $_) y se pasa 
a ejecutar la línea 65.
Casiano Rodríguez León
