%cat rename.pl #!/usr/bin/perl =head1 SYNOPSIS rename.pl '/' =head1 DESCRIPTION Renames the files listed as after performing the substitution using the standard perl regular expression pattern from and to. =head1 EXAMPLES rename.pl 'ready/done' file1-ready file2-ready_to_go renames "file1-ready" to "file1-done" and "file2-ready_to_go" to "file2-done_to_go" =cut use strict; use warnings; my $file; my $old; my $pattern; my $command; unless( @ARGV >= 2) { print "Usage: rename \"patternfrom/to\" \n"; exit(1); } # end argument check $pattern = shift(@ARGV); foreach $file (@ARGV) { $old=$file; $pattern .= "/" unless( $pattern =~ m#.*?/.*?/$# ); $command = "\$file =~ s/$pattern"; eval $command; if ( $@ ) { print STDERR "$@"; } # end eval failed check rename($old,$file); } # end rename loop