Accessing All Members of a Zip File in Perl =========================================== Using the command "unzip -l", I've found that the ODF (Open Document File) files have more members that the ones you see in the chapter about root elements in the ODF specs. To access all the members, you would use the method "getHeaderInfo" of the cwfile handle irefernce returned by IO::Uncompress::Unzip->new() The method returns either a reference to a hash or an array of hash references. The returned values depends on the type of variable at the left side of the equal sign. Guess what? When I try to get an array, I get one that contains one entry only: the hash. You called the method? Great! Now you use the file handle for the current stream. Following is an example from the documentation for "IO::Uncompress::Unzip": my $u = IO::Uncompress::Unzip->new( $zipfile ) or die "Cannot open $zipfile: $UnzipError"; my $status; for ($status = 1; $status > 0; $status = $u->nextStream()) { my $name = $u->getHeaderInfo()->{Name}; warn "Processing member $name\n" ; my $buff; while (($status = $u->read($buff)) > 0) { # Do something here } last if $status < 0; } die "Error processing $zipfile: $!\n" if $status < 0 ;