manpagez: man pages & more
man Archive::Zip::MemberRead(3)
Home | html | info | man

Archive::Zip::MemberRead(3)




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 = 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\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')

       setLineEnd(expr)
           Set the line end character to use. This is set to \n by default
           except on Windows systems where it is set to \r\n. You will only
           need to set this on systems which are not Windows or Unix based and
           require a line end diffrent from \n.  This is a class method so
           call as "Archive::Zip::MemberRead"->"setLineEnd($nl)"

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

       input_record_separator(expr)
           If the argumnet is given, input_record_separator for this instance
           is set to it. The current setting (which may be the global $/) is
           always returned.

       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 input_record_separator (default: 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 = Archive::Zip::MemberRead->new($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 Archive::Zip by Ned Konz
       without which this module does not make any sense!

       Minor mods by Ned Konz.


COPYRIGHT

       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.



perl v5.10.0                      2008-10-12       Archive::Zip::MemberRead(3)

Mac OS X 10.6 - Generated Thu Sep 17 20:10:37 CDT 2009
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.