use Archive::Zip qw( :ERROR_CODES ); my $zip = Archive::Zip->new(); opendir(DataDir, "."); foreach (readdir(DataDir)) { if( -e $_ and $_ ne "." and $_ ne "..") { $member = $zip->addFile($_); $member->desiredCompressionLevel( 1 ); } } $zip->writeToFileNamed("myFile.zip");