in reply to How to rename to lowercase every file in a directory and its subdirectories?

This code performs this task for you - It makes use of File::Find to find entries within the given path, ensures that they are actually files (stat and -f _) and then renames them. This could be made more precise by added exclusion matches. eg. return unless (m/\.mp3$/);

#!d:/perl/bin/perl -w use File::Find; use strict; find ({ 'wanted' => \&renamefile, }, '/path/to/sub/directory'); sub renamefile { my ($dev, $ino, $mode, $nlink, $uid, $gid); return unless (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_) +); return unless (-f _); rename $_, lc($_); }