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
