#!/usr/bin/perl -w use strict; use warnings; use POSIX qw/strftime/; use IO::Compress::Zip qw(:all); my $now = strftime("%d%b%Y_%H00", localtime(time - 60*60)); my $dir = "/path/to/directory/"; my $arc = "/path/to/archive/"; zip [ glob("*-".$now.".csv") ] => $arc.$now.".zip" or die "Cannot create zip file: $ZipError" ; unlink glob($dir."*-".$now.".csv");