use IO::Uncompress::Unzip qw(unzip $UnzipError); my $logDirectory = '/logs'; foreach my $zipFile (glob("$logDirectory/*.zip")) { my $output; print "Processing $zipFile\n"; local $/ = "\r\n"; my $unzip = new IO::Uncompress::Unzip $zipFile or die "Cannot open $zipFile: $UnzipError\n"; while (<$unzip>) { #do something } close $unzip or die $!; }