use strict; use warnings; no warnings 'uninitialized'; use Win32::Daemon::Simple Service => 'DelService', Name => 'SERVICE NAME', Version => 'x.x', Info => { display => 'SERVICEDISPLAYNAME', description => 'SERVICEDESCRIPTION', # user => '', # pwd => '', interactive => 0, }, Params => { # the default parameters Interval => 5*(1/60), # it's in minutes! LogFile => "ServiceName.log", Directory => 'c:\the\directory\\', }; ServiceLoop(\&doTheJob); Log("Going down"); exit; sub doTheJob { opendir my $DIR, DIRECTORY or die qq{Can't read the contents of "} . DIRECTORY . qq{" !\n}; while (my $file = readdir $DIR) { next if -d (DIRECTORY . '/' . $file); # don't try to unlink directories # you can add some filtering here if you do not want to delete everything unlink (DIRECTORY . '/' . $file); } closedir $DIR; }