4 Compress::Zlib::FAQ -- Frequently Asked Questions about Compress::Zlib
8 Common questions answered.
12 =head2 Compatibility with Unix compress/uncompress.
14 Although C<Compress::Zlib> has a pair of functions called C<compress> and
15 C<uncompress>, they are I<not> the same as the Unix programs of the same
16 name. The C<Compress::Zlib> library is not compatible with Unix
19 If you have the C<uncompress> program available, you can use this to read
22 open F, "uncompress -c $filename |";
27 Alternatively, if you have the C<gunzip> program available, you can use
28 this to read compressed files
30 open F, "gunzip -c $filename |";
35 and this to write compress files if you have the C<compress> program
38 open F, "| compress -c $filename ";
43 =head2 Accessing .tar.Z files
45 The C<Archive::Tar> module can optionally use C<Compress::Zlib> (via the
46 C<IO::Zlib> module) to access tar files that have been compressed with
47 C<gzip>. Unfortunately tar files compressed with the Unix C<compress>
48 utility cannot be read by C<Compress::Zlib> and so cannot be directly
49 accesses by C<Archive::Tar>.
51 If the C<uncompress> or C<gunzip> programs are available, you can use one
52 of these workarounds to read C<.tar.Z> files from C<Archive::Tar>
54 Firstly with C<uncompress>
60 open F, "uncompress -c $filename |";
61 my $tar = Archive::Tar->new(*F);
64 and this with C<gunzip>
70 open F, "gunzip -c $filename |";
71 my $tar = Archive::Tar->new(*F);
74 Similarly, if the C<compress> program is available, you can use this to
75 write a C<.tar.Z> file
82 my $fh = new IO::File "| compress -c >$filename";
83 my $tar = Archive::Tar->new();
89 =head2 Accessing Zip Files
94 Although it is possible (with some effort on your part) to use this
95 module to access .zip files, there is a module on CPAN that will do all
96 the hard work for you. Check out the C<Archive::Zip> module on CPAN at
98 http://www.cpan.org/modules/by-module/Archive/Archive-Zip-*.tar.gz
100 Assuming you don't want to use this module to access zip files there
101 are a number of undocumented features in the zlib library you need to
108 When calling B<Compress::Zlib::Inflate::new> or
109 B<Compress::Zlib::Deflate::new> the B<WindowBits> parameter must be set to
110 C<-MAX_WBITS>. This enables the creation of an RFC1951 compressed data
115 If you are using zlib older than 1.2.0,
116 The zlib function B<inflate>, and so the B<inflate> method supplied in
117 this module, assume that there is at least one trailing byte after the
118 compressed data stream. Normally this isn't a problem because both
119 the gzip and zip file formats will guarantee that there is data directly
120 after the compressed data stream.
135 =head2 Zlib Library Version Support
137 By default C<Compress::Zlib> will build with a private copy of version
138 1.2.3 of the zlib library. (See the F<README> file for details of
139 how to override this behaviour)
141 If you decide to use a different version of the zlib library, you need to be
142 aware of the following issues
148 First off, you must have zlib 1.0.5 or better.
152 You need to have zlib 1.2.1 or better if you want to use the C<-Merge>
153 option with C<IO::Compress::Gzip>, C<IO::Compress::Deflate> and
154 C<IO::Compress::RawDeflate>.
165 L<Compress::Zlib>, L<IO::Compress::Gzip>, L<IO::Uncompress::Gunzip>, L<IO::Compress::Deflate>, L<IO::Uncompress::Inflate>, L<IO::Compress::RawDeflate>, L<IO::Uncompress::RawInflate>, L<IO::Uncompress::AnyInflate>
167 L<Compress::Zlib::FAQ|Compress::Zlib::FAQ>
169 L<File::GlobMapper|File::GlobMapper>, L<Archive::Tar|Archive::Zip>,
172 For RFC 1950, 1951 and 1952 see
173 F<http://www.faqs.org/rfcs/rfc1950.html>,
174 F<http://www.faqs.org/rfcs/rfc1951.html> and
175 F<http://www.faqs.org/rfcs/rfc1952.html>
177 The primary site for the gzip program is F<http://www.gzip.org>.
181 The I<> module was written by Paul Marquess,
182 F<pmqs@cpan.org>. The latest copy of the module can be
183 found on CPAN in F<modules/by-module/Compress/Compress-Zlib-x.x.tar.gz>.
185 The I<zlib> compression library was written by Jean-loup Gailly
186 F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
188 The primary site for the I<zlib> compression library is
189 F<http://www.zlib.org>.
191 =head1 MODIFICATION HISTORY
193 See the Changes file.
195 =head1 COPYRIGHT AND LICENSE
198 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
199 This program is free software; you can redistribute it and/or
200 modify it under the same terms as Perl itself.