Crypt::OpenPGP::Compressed implements compressed data packets,
providing both compression and decompression functionality, for all
supported compression algorithms (Zlib and ZIP). This class
uses Compress::Zlib for all compression/decompression needs for
both algorithms: ZIP is simply Zlib with a different setting
for the WindowBits parameter.

Decompressing a compressed data packet should always yield a stream
of valid PGP packets (which you can then parse using
Crypt::OpenPGP::PacketFactory). Similarly, when compressing a
packet the input data should be a stream of packets.

Creates a new compressed data packet object and returns that object.
If there are no arguments in %arg, the object is created with an
empty compressed data container; this is used, for example, in
parse (below), to create an empty packet which is then filled with
the data in the buffer.

If you wish to initialize a non-empty object, %arg can contain:

Data
A block of octets that make up the data that you wish to compress.
As mentioned above, the data to compress should always be a stream
of valid PGP packets (saved using Crypt::OpenPGP::PacketFactory::save).

This argument is required (for a non-empty object).

Alg
The name (or ID) of a supported PGP compression algorithm. Valid
names are Zlib and ZIP.

This argument is optional; by default Crypt::OpenPGP::Compressed will
use ZIP.

Given $buffer, a Crypt::OpenPGP::Buffer object holding (or with
offset pointing to) a compressed data packet, returns a new
Crypt::OpenPGP::Compressed object, initialized with the data from
the buffer.