Since you're renaming in the same directory, using
File::Copy is overkill. The use of
system is inefficient when Perl has a
rename function built in, and using
readdir for this purpose is probably unnecessary.
rename($_, lc($_)) foreach <*.HTM{,L}>; # yes, this is portable
I think it was Larry Wall that pushed a real simple command-line regex-based "rename" utility like this:
$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 $_;
}
Which would let you run something like:
rename '$_ = lc' *.HTM *.HTML