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>
15 and C<uncompress>, they are I<not> the same as the Unix programs of the
16 same 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
22 open F, "uncompress -c $filename |";
27 If you have the C<gunzip> program available, you can use this to read
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
46 the C<IO::Zlib> module) to access tar files that have been compressed
47 with 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
52 one 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
91 Although it is possible (with some effort on your part) to use this
92 module to access .zip files, there is a module on CPAN that will do all
93 the hard work for you. Check out the C<Archive::Zip> module on CPAN at
95 http://www.cpan.org/modules/by-module/Archive/Archive-Zip-*.tar.gz
97 Assuming you don't want to use this module to access zip files there
98 are a number of undocumented features in the zlib library you need to
105 When calling B<inflateInit> or B<deflateInit> the B<WindowBits> parameter
106 must be set to C<-MAX_WBITS>. This disables the creation of the zlib
111 The zlib function B<inflate>, and so the B<inflate> method supplied in
112 this module, assume that there is at least one trailing byte after the
113 compressed data stream. Normally this isn't a problem because both
114 the gzip and zip file formats will guarantee that there is data directly
115 after the compressed data stream.
130 =head2 Zlib Library Version Support
132 By default C<Compress::Zlib> will build with a private copy of version 1.2.3 of the zlib library. (See the F<README> file for details of how
133 to override this behavior)
135 If you decide to use a different version of the zlib library, you need to be
136 aware of the following issues
142 First off, you must have zlib 1.0.5 or better.
146 You need to have zlib 1.2.1 or better if you want to use the C<-Merge> option
147 with C<IO::Compress::Gzip>, C<IO::Compress::Deflate> and C<IO::Compress::RawDeflate>.
158 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>
160 L<Compress::Zlib::FAQ|Compress::Zlib::FAQ>
162 L<File::GlobMapper|File::GlobMapper>, L<Archive::Tar|Archive::Zip>,
165 For RFC 1950, 1951 and 1952 see
166 F<http://www.faqs.org/rfcs/rfc1950.html>,
167 F<http://www.faqs.org/rfcs/rfc1951.html> and
168 F<http://www.faqs.org/rfcs/rfc1952.html>
170 The primary site for the gzip program is F<http://www.gzip.org>.
174 The I<> module was written by Paul Marquess,
175 F<pmqs@cpan.org>. The latest copy of the module can be
176 found on CPAN in F<modules/by-module/Compress/Compress-Zlib-x.x.tar.gz>.
178 The I<zlib> compression library was written by Jean-loup Gailly
179 F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
181 The primary site for the I<zlib> compression library is
182 F<http://www.zlib.org>.
184 =head1 MODIFICATION HISTORY
186 See the Changes file.
188 =head1 COPYRIGHT AND LICENSE
191 Copyright (c) 2005 Paul Marquess. All rights reserved.
192 This program is free software; you can redistribute it and/or
193 modify it under the same terms as Perl itself.