in reply to gzipping folder without tarring it first
See Archive::Zip. It handles putting multiple files in to a single archive.