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álidaSi 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