My suggestion would be to use File::Find. Rather than copying and deleting files, I would suggest using the symlink function (perldoc -f symlink). This would be simpler and improve speed.
Comment on Re: Find Filename in Directory Tree and copy to another directory ..