El Código

Sigue el código completo:

pp2@europa:~$ sed -ne '32,71p' `which rename` | cat -n
 1  use strict;
 2
 3  use Getopt::Long;
 4  Getopt::Long::Configure('bundling');
 5
 6  my ($verbose, $no_act, $force, $op);
 7
 8  die "Usage: rename [-v] [-n] [-f] perlexpr [filenames]\n"
 9      unless GetOptions(
10          'v|verbose' => \$verbose,
11          'n|no-act'  => \$no_act,
12          'f|force'   => \$force,
13      ) and $op = shift;
14
15  $verbose++ if $no_act;
16
17  if (!@ARGV) {
18      print "reading filenames from STDIN\n" if $verbose;
19      @ARGV = <STDIN>;
20      chop(@ARGV);
21  }
22
23  for (@ARGV) {
24      my $was = $_;
25      eval $op;
26      die $@ if $@;
27      next if $was eq $_; # ignore quietly
28      if (-e $_ and !$force)
29      {
30          warn  "$was not renamed: $_ already exists\n";
31      }
32      elsif ($no_act or rename $was, $_)
33      {
34          print "$was renamed as $_\n" if $verbose;
35      }
36      else
37      {
38          warn  "Can't rename $was $_: $!\n";
39      }
40  }

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