I'd do system cp => '-r', $din, $dout;, or if I'm
on a system that doesn't have a recursive copy, I'd do:
chdir $din or die; system "tar cf - '$din' | (cd $dout; tar xf -)".
Well, not always. POSIX compliant systems will have cp
and tar, and many non POSIX compliant systems will
too. (Anything remotely smelling like Unix, including Cygwin).
rsync on the other hand isn't a standard tool.
But yes, rsync will work, just like scp.
Or you could make a business copy and split off a mirror. But that's
not standard either.