#!/usr/bin/perl use warnings; use strict; use Archive::Zip qw(:ERROR_CODES :CONSTANTS); my $zip1Name = '.\\tmp\\test1.zip'; my $zip2Name = '.\\tmp\\test2.zip'; my $zip1 = Archive::Zip->new(); my $zip2 = Archive::Zip->new(); if (!-e $zip2Name || !-e $zip1Name) { die "run test_arc.pl to create zip files for this."; } unless ( $zip1->read( $zip1Name ) == AZ_OK ) {die 'zip1 read error';} unless ( $zip2->read( $zip2Name ) == AZ_OK ) {die 'zip2 read error';} my $rm_return = $zip1->removeMember('rr.log'); if ($rm_return) { print "removeMember : ", $rm_return->fileName() ,"\n"; $zip2->addMember($rm_return) or die "Can't add ", $rm_return->fileName() ," to zip!"; } else {print "\$rm_return is undef\n";} unless ( $zip1->overwrite() == AZ_OK ) { die 'zip1 overwrite() error'; } # unless ( $zip2->overwrite() == AZ_OK){die 'zip2 overwrite() error';} unless ( $zip2->writeToFileNamed('.\\tmp\\newtest2.zip') == AZ_OK ) { die 'zip2 write() error'; } #### Member rr.log CRC error: file says ff147173 computed: 354acf95 CRC errors found. #### my $removed_member = $zip1->removeMember( 'foo' ); $removed_member->extractToFileNamed('foo');