.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "Archive::Zip::MemberRead 3"
.TH Archive::Zip::MemberRead 3 "2018-09-12" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Archive::Zip::MemberRead \- A wrapper that lets you read Zip archive members as if they were files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 8
\& use Archive::Zip;
\& use Archive::Zip::MemberRead;
\& $zip = Archive::Zip\->new("file.zip");
\& $fh = Archive::Zip::MemberRead\->new($zip, "subdir/abc.txt");
\& while (defined($line = $fh\->getline()))
\& {
\& print $fh\->input_line_number . "#: $line\en";
\& }
\&
\& $read = $fh\->read($buffer, 32*1024);
\& print "Read $read bytes as :$buffer:\en";
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The Archive::Zip::MemberRead module lets you read Zip archive member data
just like you read data from files.
.SH "METHODS"
.IX Header "METHODS"
.IP "\fIArchive::Zip::Member::readFileHandle()\fR" 4
.IX Item "Archive::Zip::Member::readFileHandle()"
You can get a \f(CW\*(C`Archive::Zip::MemberRead\*(C'\fR from an archive member by
calling \f(CW\*(C`readFileHandle()\*(C'\fR:
.Sp
.Vb 7
\& my $member = $zip\->memberNamed(\*(Aqabc/def.c\*(Aq);
\& my $fh = $member\->readFileHandle();
\& while (defined($line = $fh\->getline()))
\& {
\& # ...
\& }
\& $fh\->close();
.Ve
.ie n .IP "Archive::Zip::MemberRead\->new($zip, $fileName)" 4
.el .IP "Archive::Zip::MemberRead\->new($zip, \f(CW$fileName\fR)" 4
.IX Item "Archive::Zip::MemberRead->new($zip, $fileName)"
.PD 0
.ie n .IP "Archive::Zip::MemberRead\->new($zip, $member)" 4
.el .IP "Archive::Zip::MemberRead\->new($zip, \f(CW$member\fR)" 4
.IX Item "Archive::Zip::MemberRead->new($zip, $member)"
.IP "Archive::Zip::MemberRead\->new($member)" 4
.IX Item "Archive::Zip::MemberRead->new($member)"
.PD
Construct a new Archive::Zip::MemberRead on the specified member.
.Sp
.Vb 1
\& my $fh = Archive::Zip::MemberRead\->new($zip, \*(Aqfred.c\*(Aq)
.Ve
.IP "setLineEnd(expr)" 4
.IX Item "setLineEnd(expr)"
Set the line end character to use. This is set to \en by default
except on Windows systems where it is set to \er\en. You will
only need to set this on systems which are not Windows or Unix
based and require a line end different from \en.
This is a class method so call as \f(CW\*(C`Archive::Zip::MemberRead\*(C'\fR\->\f(CW\*(C`setLineEnd($nl)\*(C'\fR
.IP "\fIrewind()\fR" 4
.IX Item "rewind()"
Rewinds an \f(CW\*(C`Archive::Zip::MemberRead\*(C'\fR so that you can read from it again
starting at the beginning.
.IP "input_record_separator(expr)" 4
.IX Item "input_record_separator(expr)"
If the argument is given, input_record_separator for this
instance is set to it. The current setting (which may be
the global $/) is always returned.
.IP "\fIinput_line_number()\fR" 4
.IX Item "input_line_number()"
Returns the current line number, but only if you're using \f(CW\*(C`getline()\*(C'\fR.
Using \f(CW\*(C`read()\*(C'\fR will not update the line number.
.IP "\fIclose()\fR" 4
.IX Item "close()"
Closes the given file handle.
.ie n .IP "buffer_size([ $size ])" 4
.el .IP "buffer_size([ \f(CW$size\fR ])" 4
.IX Item "buffer_size([ $size ])"
Gets or sets the buffer size used for reads.
Default is the chunk size used by Archive::Zip.
.IP "\fIgetline()\fR" 4
.IX Item "getline()"
Returns the next line from the currently open member.
Makes sense only for text files.
A read error is considered fatal enough to die.
Returns undef on eof. All subsequent calls would return undef,
unless a \fIrewind()\fR is called.
Note: The line returned has the input_record_separator (default: newline) removed.
.IP "getline( { preserve_line_ending => 1 } )" 4
.IX Item "getline( { preserve_line_ending => 1 } )"
Returns the next line including the line ending.
.ie n .IP "read($buffer, $num_bytes_to_read)" 4
.el .IP "read($buffer, \f(CW$num_bytes_to_read\fR)" 4
.IX Item "read($buffer, $num_bytes_to_read)"
Simulates a normal \f(CW\*(C`read()\*(C'\fR system call.
Returns the no. of bytes read. \f(CW\*(C`undef\*(C'\fR on error, 0 on eof, \fIe.g.\fR:
.Sp
.Vb 9
\& $fh = Archive::Zip::MemberRead\->new($zip, "sreeji/secrets.bin");
\& while (1)
\& {
\& $read = $fh\->read($buffer, 1024);
\& die "FATAL ERROR reading my secrets !\en" if (!defined($read));
\& last if (!$read);
\& # Do processing.
\& ....
\& }
.Ve
.SH "AUTHOR"
.IX Header "AUTHOR"
Sreeji K. Das <sreeji_k@yahoo.com>
.PP
See Archive::Zip by Ned Konz without which this module does not make
any sense!
.PP
Minor mods by Ned Konz.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright 2002 Sreeji K. Das.
.PP
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
Copyright 2K16 - 2K18 Indonesian Hacker Rulez