Evaluación de la Expresión de Sustitución

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 quietly
A 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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19