You can certainly do it in Perl but I have a feeling that there are applications out there that do this already and do it better.
If your set on doing it in Perl then you can look into the Net::FTP[1] module or just script a bunch if system commands together to get it done.
I ran across Bacula[2] the other night and it looks quite interesting. If it doesn't support FTP out of the box you may be able to use it to create the archives and then just script the FTP part.
~Charlie
[1]
http://search.cpan.org/~gbarr/libnet/Net/FTP.pm
[2]
http://www.bacula.org/