The UNIX compress program uses a quite different implementation of the compression techniques used by zlib and gzip, so I'm not sure whether Compress::Zlib will be able to read .Z files.
Anyway, keep in mind that there are several different compression methods, and that the one that people usually refer to as 'zip' refers to PKZip, which is compatible with WinZip and InfoZip.
gzip and PKZip/WinZip/InfoZip use very different compression methods (just to say one difference, gzip can compress only one file, while the others can create compressed archives of several files), so compression and decompression programs will have to be paired. For example, gzip on one end and Compress::Zlib on the other.