Well then, just take the code, take out the rmdir, and put in a rename. What? Are we supposed to write all your code for you? Just setup a test dir/subdir setup, and try renaming, with finddepth, instead of find. Also Google for "File::Find rename dirs"