Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files. |
Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.
use Archive::Zip; use Archive::Zip::MemberRead; $zip = new Archive::Zip("file.zip"); $fh = new Archive::Zip::MemberRead($zip, "subdir/abc.txt"); while (defined($line = $fh->getline())) { print $fh->input_line_number . "#: $line\n"; }
$read = $fh->read($buffer, 32*1024); print "Read $read bytes as :$buffer:\n";
The Archive::Zip::MemberRead module lets you read Zip archive member data just like you read data from files.
Archive::Zip::MemberRead
from an archive member by
calling readFileHandle()
:
my $member = $zip->memberNamed('abc/def.c'); my $fh = $member->readFileHandle(); while (defined($line = $fh->getline())) { # ... } $fh->close();
new($member)
my $fh = Archive::Zip::MemberRead->new($zip, 'fred.c')
setLineEnd(expr)
Archive::Zip::MemberRead
->setLineEnd($nl)
rewind()
Archive::Zip::MemberRead
so that you can read from it again
starting at the beginning.
input_record_separator(expr)
input_line_number()
getline()
.
Using read()
will not update the line number.
close()
getline()
rewind()
is called.
Note: The line returned has the input_record_separator (default: newline) removed.
read()
system call.
Returns the no. of bytes read. undef
on error, 0 on eof, e.g.:
$fh = new Archive::Zip::MemberRead($zip, "sreeji/secrets.bin"); while (1) { $read = $fh->read($buffer, 1024); die "FATAL ERROR reading my secrets !\n" if (!defined($read)); last if (!$read); # Do processing. .... }
Sreeji K. Das, <sreeji_k@yahoo.com> See the Archive::Zip manpage by Ned Konz without which this module does not make any sense!
Minor mods by Ned Konz.
Copyright 2002 Sreeji K. Das.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files. |