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