Inflate(1).pdf
(
69 KB
)
Pobierz
Perl version 5.10.0 documentation - IO::Uncompress::Inflate
NAME
IO::Uncompress::Inflate - Read RFC 1950 files/buffers
SYNOPSIS
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
my $status = inflate $input => $output [,OPTS]
or die "inflate failed: $InflateError\n";
my $z = new IO::Uncompress::Inflate $input [OPTS]
or die "inflate failed: $InflateError\n";
$status
$status
$status
$line =
$char =
$char =
$char =
= $z->read($buffer)
= $z->read($buffer, $length)
= $z->read($buffer, $length, $offset)
$z->getline()
$z->getc()
$z->ungetc()
$z->opened()
$status = $z->inflateSync()
$data = $z->trailingData()
$status = $z->nextStream()
$data = $z->getHeaderInfo()
$z->tell()
$z->seek($position, $whence)
$z->binmode()
$z->fileno()
$z->eof()
$z->close()
$InflateError ;
# IO::File mode
<$z>
read($z, $buffer);
read($z, $buffer, $length);
read($z, $buffer, $length, $offset);
tell($z)
seek($z, $position, $whence)
binmode($z)
fileno($z)
eof($z)
close($z)
DESCRIPTION
This module provides a Perl interface that allows the reading of files/buffers that conform to RFC
1950.
For writing RFC 1950 files/buffers, see the companion module IO::Compress::Deflate.
http://perldoc.perl.org
Page 1
Perl version 5.10.0 documentation - IO::Uncompress::Inflate
Functional Interface
A top-level function,
inflate,
is provided to carry out "one-shot" uncompression between buffers
and/or files. For finer control over the uncompression process, see the
OO Interface
section.
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
inflate $input => $output [,OPTS]
or die "inflate failed: $InflateError\n";
The functional interface needs Perl5.005 or better.
inflate $input => $output [, OPTS]
inflate
expects at least two parameters,
$input
and
$output.
The $input parameter
The parameter,
$input,
is used to define the source of the compressed data.
It can take one of the following forms:
A filename
If the
$input
parameter is a simple scalar, it is assumed to be a filename. This file will be
opened for reading and the input data will be read from it.
A filehandle
If the
$input
parameter is a filehandle, the input data will be read from it. The string '-' can
be used as an alias for standard input.
A scalar reference
If
$input
is a scalar reference, the input data will be read from
$$input.
An array reference
If
$input
is an array reference, each element in the array must be a filename.
The input data will be read from each file in turn.
The complete array will be walked to ensure that it only contains valid filenames before any
data is uncompressed.
An Input FileGlob string
If
$input
is a string that is delimited by the characters "<" and ">"
inflate
will assume
that it is an
input fileglob string.
The input is the list of files that match the fileglob.
If the fileglob does not match any files ...
See
File::GlobMapper
for more details.
If the
$input
parameter is any other type,
undef
will be returned.
The $output parameter
The parameter
$output
is used to control the destination of the uncompressed data. This parameter
can take one of these forms.
A filename
If the
$output
parameter is a simple scalar, it is assumed to be a filename. This file will be
opened for writing and the uncompressed data will be written to it.
A filehandle
If the
$output
parameter is a filehandle, the uncompressed data will be written to it. The
string '-' can be used as an alias for standard output.
http://perldoc.perl.org
Page 2
Perl version 5.10.0 documentation - IO::Uncompress::Inflate
A scalar reference
If
$output
is a scalar reference, the uncompressed data will be stored in
$$output.
An Array Reference
If
$output
is an array reference, the uncompressed data will be pushed onto the array.
An Output FileGlob
If
$output
is a string that is delimited by the characters "<" and ">"
inflate
will assume
that it is an
output fileglob string.
The output is the list of files that match the fileglob.
When
$output
is an fileglob string,
$input
must also be a fileglob string. Anything else is
an error.
If the
$output
parameter is any other type,
undef
will be returned.
Notes
When
$input
maps to multiple compressed files/buffers and
$output
is a single file/buffer, after
uncompression
$output
will contain a concatenation of all the uncompressed data from each of the
input files/buffers.
Optional Parameters
Unless specified below, the optional parameters for
inflate, OPTS,
are the same as those used with
the OO interface defined in the
Constructor Options
section below.
AutoClose => 0|1
This option applies to any input or output data streams to
inflate
that are filehandles.
If
AutoClose
is specified, and the value is true, it will result in all input and/or output
filehandles being closed once
inflate
has completed.
This parameter defaults to 0.
BinModeOut => 0|1
When writing to a file or filehandle, set
binmode
before writing to the file.
Defaults to 0.
Append => 0|1
TODO
MultiStream => 0|1
If the input file/buffer contains multiple compressed data streams, this option will
uncompress the whole lot as a single data stream.
Defaults to 0.
TrailingData => $scalar
Returns the data, if any, that is present immediately after the compressed data stream once
uncompression is complete.
This option can be used when there is useful information immediately following the
compressed data stream, and you don't know the length of the compressed data stream.
If the input is a buffer,
trailingData
will return everything from the end of the
compressed data stream to the end of the buffer.
If the input is a filehandle,
trailingData
will return the data that is left in the filehandle
input buffer once the end of the compressed data stream has been reached. You can then
use the filehandle to read the rest of the input file.
Don't bother using
trailingData
if the input is a filename.
If you know the length of the compressed data stream before you start uncompressing, you
http://perldoc.perl.org
Page 3
Perl version 5.10.0 documentation - IO::Uncompress::Inflate
can avoid having to use
trailingData
by setting the
InputLength
option.
Examples
To read the contents of the file
file1.txt.1950
and write the compressed data to the file
file1.txt.
use strict ;
use warnings ;
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
my $input = "file1.txt.1950";
my $output = "file1.txt";
inflate $input => $output
or die "inflate failed: $InflateError\n";
To read from an existing Perl filehandle,
$input,
and write the uncompressed data to a buffer,
$buffer.
use
use
use
use
strict ;
warnings ;
IO::Uncompress::Inflate qw(inflate $InflateError) ;
IO::File ;
my $input = new IO::File "<file1.txt.1950"
or die "Cannot open 'file1.txt.1950': $!\n" ;
my $buffer ;
inflate $input => \$buffer
or die "inflate failed: $InflateError\n";
To uncompress all files in the directory "/my/home" that match "*.txt.1950" and store the compressed
data in the same directory
use strict ;
use warnings ;
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
inflate '</my/home/*.txt.1950>' => '</my/home/#1.txt>'
or die "inflate failed: $InflateError\n";
and if you want to compress each file one at a time, this will do the trick
use strict ;
use warnings ;
use IO::Uncompress::Inflate qw(inflate $InflateError) ;
for my $input ( glob "/my/home/*.txt.1950" )
{
my $output = $input;
$output =~ s/.1950// ;
inflate $input => $output
or die "Error compressing '$input': $InflateError\n";
}
http://perldoc.perl.org
Page 4
Perl version 5.10.0 documentation - IO::Uncompress::Inflate
OO Interface
Constructor
The format of the constructor for IO::Uncompress::Inflate is shown below
my $z = new IO::Uncompress::Inflate $input [OPTS]
or die "IO::Uncompress::Inflate failed: $InflateError\n";
Returns an
IO::Uncompress::Inflate
object on success and undef on failure. The variable
$InflateError
will contain an error message on failure.
If you are running Perl 5.005 or better the object,
$z,
returned from IO::Uncompress::Inflate can be
used exactly like an
IO::File
filehandle. This means that all normal input file operations can be carried
out with
$z.
For example, to read a line from a compressed file/buffer you can use either of these
forms
$line = $z->getline();
$line = <$z>;
The mandatory parameter
$input
is used to determine the source of the compressed data. This
parameter can take one of three forms.
A filename
If the
$input
parameter is a scalar, it is assumed to be a filename. This file will be opened
for reading and the compressed data will be read from it.
A filehandle
If the
$input
parameter is a filehandle, the compressed data will be read from it. The string
'-' can be used as an alias for standard input.
A scalar reference
If
$input
is a scalar reference, the compressed data will be read from
$$output.
Constructor Options
The option names defined below are case insensitive and can be optionally prefixed by a '-'. So all of
the following are valid
-AutoClose
-autoclose
AUTOCLOSE
autoclose
OPTS is a combination of the following options:
AutoClose => 0|1
This option is only valid when the
$input
parameter is a filehandle. If specified, and the
value is true, it will result in the file being closed once either the
close
method is called or
the IO::Uncompress::Inflate object is destroyed.
This parameter defaults to 0.
MultiStream => 0|1
Allows multiple concatenated compressed streams to be treated as a single compressed
stream. Decompression will stop once either the end of the file/buffer is reached, an error is
encountered (premature eof, corrupt compressed data) or the end of a stream is not
immediately followed by the start of another stream.
This parameter defaults to 0.
http://perldoc.perl.org
Page 5
Plik z chomika:
musli_com
Inne pliki z tego folderu:
AnyInflate(1).pdf
(74 KB)
Base(1).pdf
(17 KB)
Gunzip(1).pdf
(72 KB)
index(1).html
(6 KB)
Inflate(1).pdf
(69 KB)
Inne foldery tego chomika:
Compress
Socket
Zgłoś jeśli
naruszono regulamin