This module recursively copies directories, preserving permissions like "cp -pr". I was surprised to discover that there are only two recursive copy modules on CPAN: this one and the older File::NCopy.
The File::Copy::Recursive interface is simple enough: dircopy($srcdir, $destdir). However, it is significantly overcomplicated by a pile of poorly-named global variables that allow the user to tweak behavior. The code itself is very hard to read and I had great difficulty tracking down the source of a chmod bug. Update: the bug is fixed and the author is VERY responsive!
The source code to File::NCopy is dramatically simpler, but that module has a rather odd way to signal recursion via a scalar reference that I find annoying.
It would be nice to have something like this in the base installation of Perl. That way, when I subclass Module::Build to have do extra actions upon install (like recursively copying a dir from one place to another), I would have a pure perl way of doing this portably without having to pull extra modules from CPAN. Currently, I've resorted to doing `system("cp -auv $src $dst")` which is fine for systems with GNU/cp, but not for anyone else. Maybe it's a bit too late for perl5 but for perl6, let's think about having a more complete set of file manipulation libs in the base.