No entiendo que no quieras usar File::Copy... viene incluido de base con Perl...
Hay otros módulos en CPAN que hacen la misma función, incluso mucho más fácil que File::Copy. Por ejemplo,
File::Copy::Recursive:
Using perl Syntax Highlighting
use File::Copy::Recursive qw(dircopy);
dircopy($viejo, $nuevo);
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Y si no... pues ya sabes... recorrer el directorio de forma recursiva, y por cada archivo encontrado, abrirlo en lectura y abrirlo en escritura y pasarlo de un sitio a otro (while (<>)), y crear los subdirectorios con mkdir... muchas líneas de código... los puedes copiar de File::Copy::Recursive
(Yo prefiero escribir
dircopy(), que son 7 letras
).