use File::Find; finddepth sub { return if /^\./; my $new = lc $_; return if $new eq $_ or -e $new; rename $_, $new or warn "Cannot rename $File::Find::name to $File::Find::dir/$new: $!"; }, $ARGV[0] || ".";