in reply to Compress::Zlib or equivilent

You don't show how you're actually using Compress::Zlib, which might be relevant. If you are reading uncompressed data from some source, passing it to a Zlib method and writing the result to a file, maybe it would be sufficient to keep count of the input data (e.g.  $read_count += length()), and then compare this to the finished size of the output compressed file -- e.g.
... close OUTZ; my $comp_count = (-s $outzfile); printf("Input byte count: %d; output byte count: %d; ratio: %3.1f\n", $read_count, comp_count, 100*$comp_count/$read_count ); # (updated: reporting "100*$read_count/$comp_count would not be right)
Adding a time stamp to that is trivial (see scalar localtime).