Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.

- NAME
- SYNOPSIS
- DESCRIPTION
- METHODS
- AUTHOR
- COPYRIGHT

# NAME

Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.

# SYNOPSIS

      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";

# DESCRIPTION

The Archive::Zip::MemberRead module lets you read Zip archive member data just like you read data from files.

# METHODS

Archive::Zip::Member::readFileHandle()
  You can get a `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();

Archive::Zip::MemberRead->new($zip, $fileName)
Archive::Zip::MemberRead->new($zip, $member)
Archive::Zip::MemberRead->`new($member)`
  Construct a new Archive::Zip::MemberRead on the specified member.

        my $fh = Archive::Zip::MemberRead->new($zip, 'fred.c')

`rewind()`
  Rewinds an `Archive::Zip::MemberRead` so that you can read from it again starting at the beginning.

`input_line_number()`
  Returns the current line number, but only if you're using `getline()`. Using `read()` will not update the line number.

`close()`
  Closes the given file handle.

buffer_size([ $size ])
  Gets or sets the buffer size used for reads. Default is the chunk size used by Archive::Zip.

`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 `rewind()` is called. Note: The line returned has the newline removed.

read($buffer, $num_bytes_to_read)
  Simulates a normal `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.
          ....
         }

# AUTHOR

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

Copyright (c) 2002 Sreeji K. Das. All rights reserved. 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.