Changes for version 1.66
- Refactored low-level methods for reading and writing zip files in zip64 format. Added new parameters and return values to most of these. Extended constants in Archive::Zip to cover zip64 formats and lengths.
- Added public APIs Archive::Zip::Archive::zip64 Archive::Zip::Archive::desiredZip64Mode Archive::Zip::Archive::versionMadeBy Archive::Zip::Archive::versionNeededToExtract Archive::Zip::Member::zip64 Archive::Zip::Member::desiredZip64Mode and constants Archive::Zip::ZIP64_AS_NEEDED Archive::Zip::ZIP64_EOCD Archive::Zip::ZIP64_HEADERS plus POD on these.
- Added tests for zip64 format in t/21_zip64.t and more test zip files below t/data. Extended tests in t/02_main.t to perform all existing tests in all possible desired zip64 modes.
- Extended methods Archive::Zip::Member::localExtraField Archive::Zip::Member::cdExtraField to perform format checks when called as setters and to reject any zip64 extended information extra fields passed by the user. Extended POD and tests in t/02_main.t accordingly.
- Setting {'compressedSize'} after writing central directory header.
- Added new optional parameter $noFormatError to method Archive::Zip::_readSignature to silence any format errros when testing for signatures.
- Added error handling for potentially failed object conversion after calling method Archive::Zip::Member::_become. Factored in method Archive::Zip::Member::_becomeDirectoryIfNecessary into caller.
- Changed methods Archive::Zip::Archive::contents Archive::Zip::Member::contents (and all inheriting from these) to consistently return a pair ($contents, $status) when called in list context and a scalar $contents when called in scalar context. Extended tests in t/02_main.t accordingly.
- Changed method Archive::Zip::Member::extractToFileHandle to accept a file name instead of a file handle when extracting symbolic links. Changed lower-level and higher-level methods to use that feature. Cleaned up code related to the handling of symbolic links. Added creation of intermediate directories in method Archive::Zip::Member::extractToFileNamed for symbolic links as well. Reporting errors from symlink call as AZ-error. Added POD and test zip file t/data/symlink.zip and tests in t/26_symlinks.t for these changes.
- Cleaned up code and added comment related to that highly dubious (?) {'wasWritten'} logic.
Documentation
Answers to a few frequently asked questions about Archive::Zip
Modules
Provide an interface to ZIP archive files.
A wrapper that lets you read Zip archive members as if they were files.
(DEPRECATED) methods for adding/extracting trees using Archive::Zip
Provides
in lib/Archive/Zip/Archive.pm
in lib/Archive/Zip/BufferedFileHandle.pm
in lib/Archive/Zip/DirectoryMember.pm
in lib/Archive/Zip/FileMember.pm
in lib/Archive/Zip/Member.pm
in lib/Archive/Zip/MockFileHandle.pm
in lib/Archive/Zip/NewFileMember.pm
in lib/Archive/Zip/StringMember.pm
in lib/Archive/Zip/ZipFileMember.pm
Examples
- examples/calcSizes.pl
- examples/copy.pl
- examples/extract.pl
- examples/mailZip.pl
- examples/mfh.pl
- examples/readScalar.pl
- examples/selfex.pl
- examples/unzipAll.pl
- examples/updateTree.pl
- examples/updateZip.pl
- examples/writeScalar.pl
- examples/writeScalar2.pl
- examples/zip.pl
- examples/zipGrep.pl
- examples/zipcheck.pl
- examples/zipinfo.pl
- examples/ziprecent.pl
- examples/ziptest.pl