[lug] Perl question
Bob Collins
bcollins at csd.net
Fri Mar 31 14:41:26 MST 2000
I have a number files I want to rename to lower case, so I went my "Perl
Cookbook" and found exactly what I needed, "rename" on page 327 in my
book. The "rename" script is sent as an attachment. The script can be
executed as:
rename 'tr/A-Z/a-z/ unless /^Make/' *
This should change files to lowercase. If you understand the " unless
/^Make/ " part I would be interested in an explanation.
I am trying to get it to work in it's simplest form, "rename file.name
newfile.name". I create a file AB.C and try to rename it to ab.c by
executing:
perl -d name AB.C ab.c
I watch it step throug with no errors. The script terminates without
changing anything because $was is equal to $_. Which it is set to in
the script.
This script is attributed to Larry Wall, but I think something must be
missing or incorrect in the script.
Help will be appreciated, I have spent a great deal of time on it with
no success.
--
Regards,
Bob Collins
Mailto:bcollins at csd.net
-------------- next part --------------
#!/usr/bin/perl -w
# rename - Larry's filename fixer
$op = shift or die "Usage: rename expr [files]\n";
chomp(@ARGV = <STDIN>) unless @ARGV;
for (@ARGV) {
$was = $_;
eval $op;
die $@ if $@;
rename($was,$_) unless $was eq $_;
}
More information about the LUG
mailing list