#!/usr/bin/perl use warnings; use strict; use Archive::Zip qw( :ERROR_CODES :CONSTANTS); my $date = "text files"; my $zip = Archive::Zip->new(); opendir DIR, $date; my @Filelist = grep { /.txt$/ } readdir DIR; foreach my $file(@Filelist){ my $member = $zip->addFile("$date\\$file"); die 'Error writing file' if $zip->writeToFileNamed("$date.zip") != AZ_OK; } print "Finished\n"