1IO::Compress::Gzip(3pm)Perl Programmers Reference GuideIO::Compress::Gzip(3pm)
2
3
4
6 IO::Compress::Gzip - Write RFC 1952 files/buffers
7
9 use IO::Compress::Gzip qw(gzip $GzipError) ;
10
11 my $status = gzip $input => $output [,OPTS]
12 or die "gzip failed: $GzipError\n";
13
14 my $z = new IO::Compress::Gzip $output [,OPTS]
15 or die "gzip failed: $GzipError\n";
16
17 $z->print($string);
18 $z->printf($format, $string);
19 $z->write($string);
20 $z->syswrite($string [, $length, $offset]);
21 $z->flush();
22 $z->tell();
23 $z->eof();
24 $z->seek($position, $whence);
25 $z->binmode();
26 $z->fileno();
27 $z->opened();
28 $z->autoflush();
29 $z->input_line_number();
30 $z->newStream( [OPTS] );
31
32 $z->deflateParams();
33
34 $z->close() ;
35
36 $GzipError ;
37
38 # IO::File mode
39
40 print $z $string;
41 printf $z $format, $string;
42 tell $z
43 eof $z
44 seek $z, $position, $whence
45 binmode $z
46 fileno $z
47 close $z ;
48
50 This module provides a Perl interface that allows writing compressed
51 data to files or buffer as defined in RFC 1952.
52
53 All the gzip headers defined in RFC 1952 can be created using this
54 module.
55
56 For reading RFC 1952 files/buffers, see the companion module
57 IO::Uncompress::Gunzip.
58
60 A top-level function, "gzip", is provided to carry out "one-shot"
61 compression between buffers and/or files. For finer control over the
62 compression process, see the "OO Interface" section.
63
64 use IO::Compress::Gzip qw(gzip $GzipError) ;
65
66 gzip $input => $output [,OPTS]
67 or die "gzip failed: $GzipError\n";
68
69 The functional interface needs Perl5.005 or better.
70
71 gzip $input => $output [, OPTS]
72 "gzip" expects at least two parameters, $input and $output.
73
74 The $input parameter
75
76 The parameter, $input, is used to define the source of the uncompressed
77 data.
78
79 It can take one of the following forms:
80
81 A filename
82 If the $input parameter is a simple scalar, it is assumed to be a
83 filename. This file will be opened for reading and the input data
84 will be read from it.
85
86 A filehandle
87 If the $input parameter is a filehandle, the input data will be
88 read from it. The string '-' can be used as an alias for standard
89 input.
90
91 A scalar reference
92 If $input is a scalar reference, the input data will be read from
93 $$input.
94
95 An array reference
96 If $input is an array reference, each element in the array must be
97 a filename.
98
99 The input data will be read from each file in turn.
100
101 The complete array will be walked to ensure that it only contains
102 valid filenames before any data is compressed.
103
104 An Input FileGlob string
105 If $input is a string that is delimited by the characters "<" and
106 ">" "gzip" will assume that it is an input fileglob string. The
107 input is the list of files that match the fileglob.
108
109 If the fileglob does not match any files ...
110
111 See File::GlobMapper for more details.
112
113 If the $input parameter is any other type, "undef" will be returned.
114
115 In addition, if $input is a simple filename, the default values for the
116 "Name" and "Time" options will be sourced from that file.
117
118 If you do not want to use these defaults they can be overridden by
119 explicitly setting the "Name" and "Time" options or by setting the
120 "Minimal" parameter.
121
122 The $output parameter
123
124 The parameter $output is used to control the destination of the
125 compressed data. This parameter can take one of these forms.
126
127 A filename
128 If the $output parameter is a simple scalar, it is assumed to be a
129 filename. This file will be opened for writing and the compressed
130 data will be written to it.
131
132 A filehandle
133 If the $output parameter is a filehandle, the compressed data will
134 be written to it. The string '-' can be used as an alias for
135 standard output.
136
137 A scalar reference
138 If $output is a scalar reference, the compressed data will be
139 stored in $$output.
140
141 An Array Reference
142 If $output is an array reference, the compressed data will be
143 pushed onto the array.
144
145 An Output FileGlob
146 If $output is a string that is delimited by the characters "<" and
147 ">" "gzip" will assume that it is an output fileglob string. The
148 output is the list of files that match the fileglob.
149
150 When $output is an fileglob string, $input must also be a fileglob
151 string. Anything else is an error.
152
153 If the $output parameter is any other type, "undef" will be returned.
154
155 Notes
156 When $input maps to multiple files/buffers and $output is a single
157 file/buffer the input files/buffers will be stored in $output as a
158 concatenated series of compressed data streams.
159
160 Optional Parameters
161 Unless specified below, the optional parameters for "gzip", "OPTS", are
162 the same as those used with the OO interface defined in the
163 "Constructor Options" section below.
164
165 "AutoClose => 0|1"
166 This option applies to any input or output data streams to "gzip"
167 that are filehandles.
168
169 If "AutoClose" is specified, and the value is true, it will result
170 in all input and/or output filehandles being closed once "gzip"
171 has completed.
172
173 This parameter defaults to 0.
174
175 "BinModeIn => 0|1"
176 When reading from a file or filehandle, set "binmode" before
177 reading.
178
179 Defaults to 0.
180
181 "Append => 0|1"
182 The behaviour of this option is dependent on the type of output
183 data stream.
184
185 · A Buffer
186
187 If "Append" is enabled, all compressed data will be append to
188 the end of the output buffer. Otherwise the output buffer
189 will be cleared before any compressed data is written to it.
190
191 · A Filename
192
193 If "Append" is enabled, the file will be opened in append
194 mode. Otherwise the contents of the file, if any, will be
195 truncated before any compressed data is written to it.
196
197 · A Filehandle
198
199 If "Append" is enabled, the filehandle will be positioned to
200 the end of the file via a call to "seek" before any
201 compressed data is written to it. Otherwise the file pointer
202 will not be moved.
203
204 When "Append" is specified, and set to true, it will append all
205 compressed data to the output data stream.
206
207 So when the output is a filehandle it will carry out a seek to the
208 eof before writing any compressed data. If the output is a
209 filename, it will be opened for appending. If the output is a
210 buffer, all compressed data will be appened to the existing
211 buffer.
212
213 Conversely when "Append" is not specified, or it is present and is
214 set to false, it will operate as follows.
215
216 When the output is a filename, it will truncate the contents of
217 the file before writing any compressed data. If the output is a
218 filehandle its position will not be changed. If the output is a
219 buffer, it will be wiped before any compressed data is output.
220
221 Defaults to 0.
222
223 Examples
224 To read the contents of the file "file1.txt" and write the compressed
225 data to the file "file1.txt.gz".
226
227 use strict ;
228 use warnings ;
229 use IO::Compress::Gzip qw(gzip $GzipError) ;
230
231 my $input = "file1.txt";
232 gzip $input => "$input.gz"
233 or die "gzip failed: $GzipError\n";
234
235 To read from an existing Perl filehandle, $input, and write the
236 compressed data to a buffer, $buffer.
237
238 use strict ;
239 use warnings ;
240 use IO::Compress::Gzip qw(gzip $GzipError) ;
241 use IO::File ;
242
243 my $input = new IO::File "<file1.txt"
244 or die "Cannot open 'file1.txt': $!\n" ;
245 my $buffer ;
246 gzip $input => \$buffer
247 or die "gzip failed: $GzipError\n";
248
249 To compress all files in the directory "/my/home" that match "*.txt"
250 and store the compressed data in the same directory
251
252 use strict ;
253 use warnings ;
254 use IO::Compress::Gzip qw(gzip $GzipError) ;
255
256 gzip '</my/home/*.txt>' => '<*.gz>'
257 or die "gzip failed: $GzipError\n";
258
259 and if you want to compress each file one at a time, this will do the
260 trick
261
262 use strict ;
263 use warnings ;
264 use IO::Compress::Gzip qw(gzip $GzipError) ;
265
266 for my $input ( glob "/my/home/*.txt" )
267 {
268 my $output = "$input.gz" ;
269 gzip $input => $output
270 or die "Error compressing '$input': $GzipError\n";
271 }
272
274 Constructor
275 The format of the constructor for "IO::Compress::Gzip" is shown below
276
277 my $z = new IO::Compress::Gzip $output [,OPTS]
278 or die "IO::Compress::Gzip failed: $GzipError\n";
279
280 It returns an "IO::Compress::Gzip" object on success and undef on
281 failure. The variable $GzipError will contain an error message on
282 failure.
283
284 If you are running Perl 5.005 or better the object, $z, returned from
285 IO::Compress::Gzip can be used exactly like an IO::File filehandle.
286 This means that all normal output file operations can be carried out
287 with $z. For example, to write to a compressed file/buffer you can use
288 either of these forms
289
290 $z->print("hello world\n");
291 print $z "hello world\n";
292
293 The mandatory parameter $output is used to control the destination of
294 the compressed data. This parameter can take one of these forms.
295
296 A filename
297 If the $output parameter is a simple scalar, it is assumed to be a
298 filename. This file will be opened for writing and the compressed
299 data will be written to it.
300
301 A filehandle
302 If the $output parameter is a filehandle, the compressed data will
303 be written to it. The string '-' can be used as an alias for
304 standard output.
305
306 A scalar reference
307 If $output is a scalar reference, the compressed data will be
308 stored in $$output.
309
310 If the $output parameter is any other type, "IO::Compress::Gzip"::new
311 will return undef.
312
313 Constructor Options
314 "OPTS" is any combination of the following options:
315
316 "AutoClose => 0|1"
317 This option is only valid when the $output parameter is a
318 filehandle. If specified, and the value is true, it will result in
319 the $output being closed once either the "close" method is called
320 or the "IO::Compress::Gzip" object is destroyed.
321
322 This parameter defaults to 0.
323
324 "Append => 0|1"
325 Opens $output in append mode.
326
327 The behaviour of this option is dependent on the type of $output.
328
329 · A Buffer
330
331 If $output is a buffer and "Append" is enabled, all
332 compressed data will be append to the end of $output.
333 Otherwise $output will be cleared before any data is written
334 to it.
335
336 · A Filename
337
338 If $output is a filename and "Append" is enabled, the file
339 will be opened in append mode. Otherwise the contents of the
340 file, if any, will be truncated before any compressed data is
341 written to it.
342
343 · A Filehandle
344
345 If $output is a filehandle, the file pointer will be
346 positioned to the end of the file via a call to "seek" before
347 any compressed data is written to it. Otherwise the file
348 pointer will not be moved.
349
350 This parameter defaults to 0.
351
352 "Merge => 0|1"
353 This option is used to compress input data and append it to an
354 existing compressed data stream in $output. The end result is a
355 single compressed data stream stored in $output.
356
357 It is a fatal error to attempt to use this option when $output is
358 not an RFC 1952 data stream.
359
360 There are a number of other limitations with the "Merge" option:
361
362 1. This module needs to have been built with zlib 1.2.1 or
363 better to work. A fatal error will be thrown if "Merge" is
364 used with an older version of zlib.
365
366 2. If $output is a file or a filehandle, it must be seekable.
367
368 This parameter defaults to 0.
369
370 -Level
371 Defines the compression level used by zlib. The value should
372 either be a number between 0 and 9 (0 means no compression and 9
373 is maximum compression), or one of the symbolic constants defined
374 below.
375
376 Z_NO_COMPRESSION
377 Z_BEST_SPEED
378 Z_BEST_COMPRESSION
379 Z_DEFAULT_COMPRESSION
380
381 The default is Z_DEFAULT_COMPRESSION.
382
383 Note, these constants are not imported by "IO::Compress::Gzip" by
384 default.
385
386 use IO::Compress::Gzip qw(:strategy);
387 use IO::Compress::Gzip qw(:constants);
388 use IO::Compress::Gzip qw(:all);
389
390 -Strategy
391 Defines the strategy used to tune the compression. Use one of the
392 symbolic constants defined below.
393
394 Z_FILTERED
395 Z_HUFFMAN_ONLY
396 Z_RLE
397 Z_FIXED
398 Z_DEFAULT_STRATEGY
399
400 The default is Z_DEFAULT_STRATEGY.
401
402 "Minimal => 0|1"
403 If specified, this option will force the creation of the smallest
404 possible compliant gzip header (which is exactly 10 bytes long) as
405 defined in RFC 1952.
406
407 See the section titled "Compliance" in RFC 1952 for a definition
408 of the values used for the fields in the gzip header.
409
410 All other parameters that control the content of the gzip header
411 will be ignored if this parameter is set to 1.
412
413 This parameter defaults to 0.
414
415 "Comment => $comment"
416 Stores the contents of $comment in the COMMENT field in the gzip
417 header. By default, no comment field is written to the gzip file.
418
419 If the "-Strict" option is enabled, the comment can only consist
420 of ISO 8859-1 characters plus line feed.
421
422 If the "-Strict" option is disabled, the comment field can contain
423 any character except NULL. If any null characters are present, the
424 field will be truncated at the first NULL.
425
426 "Name => $string"
427 Stores the contents of $string in the gzip NAME header field. If
428 "Name" is not specified, no gzip NAME field will be created.
429
430 If the "-Strict" option is enabled, $string can only consist of
431 ISO 8859-1 characters.
432
433 If "-Strict" is disabled, then $string can contain any character
434 except NULL. If any null characters are present, the field will be
435 truncated at the first NULL.
436
437 "Time => $number"
438 Sets the MTIME field in the gzip header to $number.
439
440 This field defaults to the time the "IO::Compress::Gzip" object
441 was created if this option is not specified.
442
443 "TextFlag => 0|1"
444 This parameter controls the setting of the FLG.FTEXT bit in the
445 gzip header. It is used to signal that the data stored in the gzip
446 file/buffer is probably text.
447
448 The default is 0.
449
450 "HeaderCRC => 0|1"
451 When true this parameter will set the FLG.FHCRC bit to 1 in the
452 gzip header and set the CRC16 header field to the CRC of the
453 complete gzip header except the CRC16 field itself.
454
455 Note that gzip files created with the "HeaderCRC" flag set to 1
456 cannot be read by most, if not all, of the the standard gunzip
457 utilities, most notably gzip version 1.2.4. You should therefore
458 avoid using this option if you want to maximize the portability of
459 your gzip files.
460
461 This parameter defaults to 0.
462
463 "OS_Code => $value"
464 Stores $value in the gzip OS header field. A number between 0 and
465 255 is valid.
466
467 If not specified, this parameter defaults to the OS code of the
468 Operating System this module was built on. The value 3 is used as
469 a catch-all for all Unix variants and unknown Operating Systems.
470
471 "ExtraField => $data"
472 This parameter allows additional metadata to be stored in the
473 ExtraField in the gzip header. An RFC 1952 compliant ExtraField
474 consists of zero or more subfields. Each subfield consists of a
475 two byte header followed by the subfield data.
476
477 The list of subfields can be supplied in any of the following
478 formats
479
480 -ExtraField => [$id1, $data1,
481 $id2, $data2,
482 ...
483 ]
484 -ExtraField => [ [$id1 => $data1],
485 [$id2 => $data2],
486 ...
487 ]
488 -ExtraField => { $id1 => $data1,
489 $id2 => $data2,
490 ...
491 }
492
493 Where $id1, $id2 are two byte subfield ID's. The second byte of
494 the ID cannot be 0, unless the "Strict" option has been disabled.
495
496 If you use the hash syntax, you have no control over the order in
497 which the ExtraSubFields are stored, plus you cannot have
498 SubFields with duplicate ID.
499
500 Alternatively the list of subfields can by supplied as a scalar,
501 thus
502
503 -ExtraField => $rawdata
504
505 If you use the raw format, and the "Strict" option is enabled,
506 "IO::Compress::Gzip" will check that $rawdata consists of zero or
507 more conformant sub-fields. When "Strict" is disabled, $rawdata
508 can consist of any arbitrary byte stream.
509
510 The maximum size of the Extra Field 65535 bytes.
511
512 "ExtraFlags => $value"
513 Sets the XFL byte in the gzip header to $value.
514
515 If this option is not present, the value stored in XFL field will
516 be determined by the setting of the "Level" option.
517
518 If "Level => Z_BEST_SPEED" has been specified then XFL is set to
519 2. If "Level => Z_BEST_COMPRESSION" has been specified then XFL
520 is set to 4. Otherwise XFL is set to 0.
521
522 "Strict => 0|1"
523 "Strict" will optionally police the values supplied with other
524 options to ensure they are compliant with RFC1952.
525
526 This option is enabled by default.
527
528 If "Strict" is enabled the following behaviour will be policed:
529
530 · The value supplied with the "Name" option can only contain
531 ISO 8859-1 characters.
532
533 · The value supplied with the "Comment" option can only contain
534 ISO 8859-1 characters plus line-feed.
535
536 · The values supplied with the "-Name" and "-Comment" options
537 cannot contain multiple embedded nulls.
538
539 · If an "ExtraField" option is specified and it is a simple
540 scalar, it must conform to the sub-field structure as defined
541 in RFC 1952.
542
543 · If an "ExtraField" option is specified the second byte of the
544 ID will be checked in each subfield to ensure that it does
545 not contain the reserved value 0x00.
546
547 When "Strict" is disabled the following behaviour will be policed:
548
549 · The value supplied with "-Name" option can contain any
550 character except NULL.
551
552 · The value supplied with "-Comment" option can contain any
553 character except NULL.
554
555 · The values supplied with the "-Name" and "-Comment" options
556 can contain multiple embedded nulls. The string written to
557 the gzip header will consist of the characters up to, but not
558 including, the first embedded NULL.
559
560 · If an "ExtraField" option is specified and it is a simple
561 scalar, the structure will not be checked. The only error is
562 if the length is too big.
563
564 · The ID header in an "ExtraField" sub-field can consist of any
565 two bytes.
566
567 Examples
568 TODO
569
571 print
572 Usage is
573
574 $z->print($data)
575 print $z $data
576
577 Compresses and outputs the contents of the $data parameter. This has
578 the same behaviour as the "print" built-in.
579
580 Returns true if successful.
581
582 printf
583 Usage is
584
585 $z->printf($format, $data)
586 printf $z $format, $data
587
588 Compresses and outputs the contents of the $data parameter.
589
590 Returns true if successful.
591
592 syswrite
593 Usage is
594
595 $z->syswrite $data
596 $z->syswrite $data, $length
597 $z->syswrite $data, $length, $offset
598
599 Compresses and outputs the contents of the $data parameter.
600
601 Returns the number of uncompressed bytes written, or "undef" if
602 unsuccessful.
603
604 write
605 Usage is
606
607 $z->write $data
608 $z->write $data, $length
609 $z->write $data, $length, $offset
610
611 Compresses and outputs the contents of the $data parameter.
612
613 Returns the number of uncompressed bytes written, or "undef" if
614 unsuccessful.
615
616 flush
617 Usage is
618
619 $z->flush;
620 $z->flush($flush_type);
621
622 Flushes any pending compressed data to the output file/buffer.
623
624 This method takes an optional parameter, $flush_type, that controls how
625 the flushing will be carried out. By default the $flush_type used is
626 "Z_FINISH". Other valid values for $flush_type are "Z_NO_FLUSH",
627 "Z_SYNC_FLUSH", "Z_FULL_FLUSH" and "Z_BLOCK". It is strongly
628 recommended that you only set the "flush_type" parameter if you fully
629 understand the implications of what it does - overuse of "flush" can
630 seriously degrade the level of compression achieved. See the "zlib"
631 documentation for details.
632
633 Returns true on success.
634
635 tell
636 Usage is
637
638 $z->tell()
639 tell $z
640
641 Returns the uncompressed file offset.
642
643 eof
644 Usage is
645
646 $z->eof();
647 eof($z);
648
649 Returns true if the "close" method has been called.
650
651 seek
652 $z->seek($position, $whence);
653 seek($z, $position, $whence);
654
655 Provides a sub-set of the "seek" functionality, with the restriction
656 that it is only legal to seek forward in the output file/buffer. It is
657 a fatal error to attempt to seek backward.
658
659 Empty parts of the file/buffer will have NULL (0x00) bytes written to
660 them.
661
662 The $whence parameter takes one the usual values, namely SEEK_SET,
663 SEEK_CUR or SEEK_END.
664
665 Returns 1 on success, 0 on failure.
666
667 binmode
668 Usage is
669
670 $z->binmode
671 binmode $z ;
672
673 This is a noop provided for completeness.
674
675 opened
676 $z->opened()
677
678 Returns true if the object currently refers to a opened file/buffer.
679
680 autoflush
681 my $prev = $z->autoflush()
682 my $prev = $z->autoflush(EXPR)
683
684 If the $z object is associated with a file or a filehandle, this method
685 returns the current autoflush setting for the underlying filehandle. If
686 "EXPR" is present, and is non-zero, it will enable flushing after every
687 write/print operation.
688
689 If $z is associated with a buffer, this method has no effect and always
690 returns "undef".
691
692 Note that the special variable $| cannot be used to set or retrieve the
693 autoflush setting.
694
695 input_line_number
696 $z->input_line_number()
697 $z->input_line_number(EXPR)
698
699 This method always returns "undef" when compressing.
700
701 fileno
702 $z->fileno()
703 fileno($z)
704
705 If the $z object is associated with a file or a filehandle, "fileno"
706 will return the underlying file descriptor. Once the "close" method is
707 called "fileno" will return "undef".
708
709 If the $z object is is associated with a buffer, this method will
710 return "undef".
711
712 close
713 $z->close() ;
714 close $z ;
715
716 Flushes any pending compressed data and then closes the output
717 file/buffer.
718
719 For most versions of Perl this method will be automatically invoked if
720 the IO::Compress::Gzip object is destroyed (either explicitly or by the
721 variable with the reference to the object going out of scope). The
722 exceptions are Perl versions 5.005 through 5.00504 and 5.8.0. In these
723 cases, the "close" method will be called automatically, but not until
724 global destruction of all live objects when the program is terminating.
725
726 Therefore, if you want your scripts to be able to run on all versions
727 of Perl, you should call "close" explicitly and not rely on automatic
728 closing.
729
730 Returns true on success, otherwise 0.
731
732 If the "AutoClose" option has been enabled when the IO::Compress::Gzip
733 object was created, and the object is associated with a file, the
734 underlying file will also be closed.
735
736 newStream([OPTS])
737 Usage is
738
739 $z->newStream( [OPTS] )
740
741 Closes the current compressed data stream and starts a new one.
742
743 OPTS consists of any of the the options that are available when
744 creating the $z object.
745
746 See the "Constructor Options" section for more details.
747
748 deflateParams
749 Usage is
750
751 $z->deflateParams
752
753 TODO
754
756 A number of symbolic constants are required by some methods in
757 "IO::Compress::Gzip". None are imported by default.
758
759 :all Imports "gzip", $GzipError and all symbolic constants that can be
760 used by "IO::Compress::Gzip". Same as doing this
761
762 use IO::Compress::Gzip qw(gzip $GzipError :constants) ;
763
764 :constants
765 Import all symbolic constants. Same as doing this
766
767 use IO::Compress::Gzip qw(:flush :level :strategy) ;
768
769 :flush
770 These symbolic constants are used by the "flush" method.
771
772 Z_NO_FLUSH
773 Z_PARTIAL_FLUSH
774 Z_SYNC_FLUSH
775 Z_FULL_FLUSH
776 Z_FINISH
777 Z_BLOCK
778
779 :level
780 These symbolic constants are used by the "Level" option in the
781 constructor.
782
783 Z_NO_COMPRESSION
784 Z_BEST_SPEED
785 Z_BEST_COMPRESSION
786 Z_DEFAULT_COMPRESSION
787
788 :strategy
789 These symbolic constants are used by the "Strategy" option in the
790 constructor.
791
792 Z_FILTERED
793 Z_HUFFMAN_ONLY
794 Z_RLE
795 Z_FIXED
796 Z_DEFAULT_STRATEGY
797
799 Apache::GZip Revisited
800 See IO::Compress::FAQ
801
802 Working with Net::FTP
803 See IO::Compress::FAQ
804
806 Compress::Zlib, IO::Uncompress::Gunzip, IO::Compress::Deflate,
807 IO::Uncompress::Inflate, IO::Compress::RawDeflate,
808 IO::Uncompress::RawInflate, IO::Compress::Bzip2,
809 IO::Uncompress::Bunzip2, IO::Compress::Lzma, IO::Uncompress::UnLzma,
810 IO::Compress::Xz, IO::Uncompress::UnXz, IO::Compress::Lzop,
811 IO::Uncompress::UnLzop, IO::Compress::Lzf, IO::Uncompress::UnLzf,
812 IO::Uncompress::AnyInflate, IO::Uncompress::AnyUncompress
813
814 Compress::Zlib::FAQ
815
816 File::GlobMapper, Archive::Zip, Archive::Tar, IO::Zlib
817
818 For RFC 1950, 1951 and 1952 see http://www.faqs.org/rfcs/rfc1950.html,
819 http://www.faqs.org/rfcs/rfc1951.html and
820 http://www.faqs.org/rfcs/rfc1952.html
821
822 The zlib compression library was written by Jean-loup Gailly
823 gzip@prep.ai.mit.edu and Mark Adler madler@alumni.caltech.edu.
824
825 The primary site for the zlib compression library is
826 http://www.zlib.org.
827
828 The primary site for gzip is http://www.gzip.org.
829
831 This module was written by Paul Marquess, pmqs@cpan.org.
832
834 See the Changes file.
835
837 Copyright (c) 2005-2010 Paul Marquess. All rights reserved.
838
839 This program is free software; you can redistribute it and/or modify it
840 under the same terms as Perl itself.
841
842
843
844perl v5.12.4 2011-06-07 IO::Compress::Gzip(3pm)