#!/usr/bin/perl -w use strict; use Archive::Zip qw(:ERROR_CODES); use Data::Dumper; my $z = Archive::Zip->new(); unless ( $z->read( 'img.zip' ) == AZ_OK ) { die 'read error'; } my $old = $z->removeMember( 'old.img' ); my $new = $z->replaceMember( $old, 'new.img' ); print Dumper $z->members();