sub rename_dir { $curdir = shift; opendir($curdir) foreach $dir(readdir($curdir)) { next unless $dir is directory; &rename_dir($dir); # recurse rename($dir); } closedir(current dir) }