Well, it seems you're correct with respect to File::Copy::copy(); however, File::Copy::move() seems to work fine.
I tried copy() on an empty directory and just got an empty (normal) file. I then tried move() on an empty directory and that worked; move() on a populated directory also worked, i.e. moved the directory and its contents.
If you're the OP, sorry for the bum steer. I'll update my post.