Yes. If you use my Archive::Zip
module, you can easily zip or unzip files. There is the additional Archive::Zip::Tree
module that knows about doing whole directory trees. Ignore CPAN.pm if it says that Archive::Zip doesn't exist; they screwed up the indexing recently and I don't know if they fixed it yet. If you have trouble getting Archive::Zip, you can get it directly from CPAN at http://www.cpan.org/modules/by-authors/id/N/NE/NEDKONZ/Archive-Zip-0.11.tar.gz
Then look at MIME::Tools for how to put it into an email message, or Net::FTP for sending it.