in reply to File::Find help

Your logic appears to me to be sound ... so far. After moving the files, simply loop back through the same list a second time and try to remove each directory in turn. (If the directory is not empty, the operation should fail, and you can at that point quit trying and move on to the next name.