rsync seems like a winner, if you can meet the preconditions mentioned
by other senders.

If you can't, I would suggest not trying to learn how to do this all
in perl, but just to use ncftp, possibly in background mode.  If this
is an action that needs to be done as part of a sequence of others in
a perl script, just use system.

I hate learning new perl object disciplines.... :->

R