use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); my $zip = Archive::Zip->new(); my $member = $zip->addDirectory( 'dirname/' ); $member = $zip->addString( 'This is a test', 'stringMember.txt' ); $member = $zip->addFile( 'xyz.pl', 'AnotherName.pl' ); die 'error' unless $zip->writeToFileNamed('someZip.zip') == AZ_OK;