#!/usr/bin/perl -w use strict; lc_filenames(shift @ARGV); sub lc_filenames{ my($dir)=@_; $dir||="."; opendir DIR, $dir; my @files = readdir DIR; closedir DIR; foreach my $file(@files) { next if ($file =~ /^\.+$/); lc_filenames("$dir/$file") if(-d ("$dir/$file")); rename("$dir/$file", "$dir/".lc($file)) if($file=~/[A-Z]/); } }