ANNOUNCE: Archive::Zip 1.13 released

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Archive::Zip v1.13 has been released on August 23, 2004.

This is the same version as the developer version named 1.12_03 that has
been tested for some time by the MailScanner community.  Thanks to David
Lee and the MailScanner community, as well as to the Amavis community
for their continued help with the maintenance of Archive::Zip. Since I
don't use Perl any more, this help is greatly appreciated.

Changes since v1.12 of 8 Jul 2004 include:

  - Fixed tempfile unlink/rename bug in Win32
  - Avoid taint complaints in tree operations
  - Cures problems with t/testex test on older Perl versions

Notes for this version:

  - Some testers on older (Perl 5.500503) systems have reported
    'uninitialized value' messages in t/testUpdate.t. Apparently,
    updating to version 1.25 of the Test module fixes this warning.

  - There is a recently-reported bug where if you read a zip that has
    been written with data descriptors (like OpenOffice or Java JAR
    files), extract a file, and then re-write the zip, you will get a
    mismatch error. To work around this for now, you can do something
    like this:

        # read the zip

        # remember the compressed sizes
        foreach my $member ( $zip->members() ) {
          $member-> =

        # extract member(s)

        # restore compressed sizes
        foreach my $member ( $zip->members() ) {
          $member-> =
                if defined($member->);

        # write the zip

>From the README:

The Archive::Zip module allows a Perl program to create, manipulate,
read, and write Zip archive files.

Zip archives can be created, or you can read from existing zip files
or strings (using IO::Scalar). Once created, they can be written to
files, streams, or strings.

Members can be added, removed, extracted, replaced, rearranged, and
enumerated.  They can also be renamed or have their dates, comments, or
other attributes queried or modified.  Their data can be compressed or
uncompressed as needed.  Members can be created from members in existing
Zip files, or from existing directories, files, or strings.
Directory trees can be added or extracted simply using special tree

This module uses the Compress::Zlib library to read and write the
compressed streams inside the files. Note that versions of Compress::Zlib
prior to 1.06 truncate data and should not be used.

Compress::Zlib prior to 1.08 caused crashes on some Windows systems.

Examples and helper libraries are given to show how:
  * zip files can be read and written to strings
  * zip files can be written in chunks to arbitrary functions


1.12 8 Jul 2004 19:11:53 / 1.11 (removed) 23 Aug 2004 12:56:25

  - Use File::Temp for more secure tempfile handling
    (thanks to Alexey Tourbin of the ALT Linux Team)

  - Fix to avoid endless looping on certain corrupt zip files
    (thanks to Julian Field)
  - Handling of zip files with data descriptors (like some Java JAR files)
  - Handle unicode strings as input to Archive::Zip::Member::contents(),
    Archive::Zip::Member::contents(), and
    (thanks to Geoffrey D. Bennett)

1.10 Thu Mar 25 06:24:17 PST 2004
  - Fixed documentation of setErrorHandler()
  - Fixed link to Japanese translation of docs
  - Added Compress::Zlib Bufsize patch from Yeasah Pell that was supposed to
    have been added in 1.02
  - Fixed problems with backup filenames for zips with no extension
  - Fixed problems with undef volume names in _asLocalName()

1.09 Wed Nov 26 17:43:49 PST 2003
  - Fixed handling of inserted garbage (as from viruses)
  - Always check for local header signatures before using them
  - Added updateMember() and updateTree() functions
  - Added examples/
  - Added examples/
  - Fixed some potential but unreported bugs with function parameters like
  - Removed stray warn() call
  - Caught undef second arg to replaceMember()

1.08 Tue Oct 21 07:01:29 PDT 2003
  - test noise fix from Michael Schwern (ticket 4174)
  - FAQ NAME fix from Michael Schwern (ticket 4175)

1.07 Mon Oct 20 06:48:41 PDT 2003
  - Added file attribute code by Maurice Aubrey
  - Added FAQ about RedHat 9 build errors
  - Added check for empty filenames

1.06 Thu Jul 17 11:06:18 PDT 2003
  - Fixed seek use with IO::Scalar and IO::String
  - Fixed use of binmode with pseudo-file handles
  - Removed qr{} form for older Perl versions
  - Changed rel2abs logic in _asLocalName() if there is a volume
  - Fixed errors with making directories in extractMember() when none
  - Return AZ_OK in extractMemberWithoutPaths() if member is a directory
  - Fixed problem in extractTree with blank directory becoming "." prefix
  - Added examples/ to show how to use IO::String as
destination of Zip write
  - Edited docs and FAQ to recommend against using absolute path names in
zip files.

1.05 Wed Sep 11 12:31:20 PDT 2002
  - fixed untaint from 1.04

1.04 Wed Sep 11 07:22:04 PDT 2002
  - added untaint of lastModFileDateTime

1.03 Mon Sep  2 20:42:43 PDT 2002
  - Removed dependency on IO::Scalar
  - Set required version of File::Spec to 0.8
  - Removed tests of examples that needed IO::Scalar
  - Added binmode() call to read/writeScalar examples
  - Fixed addTree() for 5.005 compatibility (still untested with 5.004)
  - Fixed mkdir() calls for 5.005
  - Clarified documentation of tree operations

1.02 Fri Aug 23 17:07:22 PDT 2002
  - Many changes for cross-platform use (use File::Spec everywhere)
  - Separated POD from Perl
  - Moved Archive::Zip::Tree contents into Archive::Zip
    A::Z::Tree is now deprecated and will warn with -w
  - Reorganized docs
  - Added FAQ
  - Added chunkSize() call to report current chunk size
    and added C::Z BufSize patch from Yeasah Pell.
  - Added fileName() to report last read zip file name
  - Added capability to prepend data, like for SFX files
  - Added examples/ for self-extracting archives creation
  - Added examples/ for validity testing
  - Made extractToFileNamed() set access/modification times
  - Added t/testTree.t to test A::Z::Tree
  - Fix/speed up memberNamed()
  - Added Archive::Zip::MemberRead by Sreeji K. Das
  - Added tempFile(), tempName()
  - Added overwrite() and overwriteAs() to allow read/modify/write of zip
  - added examples/ to show how to read/modify/write

1.01 Tue Apr 30 10:34:44 PDT 2002
  - Changed mkpath call for directories to work with BSD/OS
  - Changed tests to work with BSD/OS


Copyright (c) 2000-2004 Ned Konz. All rights reserved.  This program is free
software; you can redistribute it and/or modify it under the same terms
as Perl itself.


>From CPAN, in directory
or /
as Archive-Zip-1.13.tar.gz

Site Timeline