I thought I'd seen something on this at the monastery lately, and
Super Search turned up
this node.
I think the overall conclusion was that there was not (as yet) a pure-Perl solution to the zipping problem (though it is doable); all of the current solutions require C-based libraries.
Impossible Robot