use File::Slurp; chdir '/path/to/shared/directory/jobs/dropoff' or die $!; for (;;) { foreach my $job (read_dir(".")) { next unless $job =~ /\.pl$/; system "perl -w $job > $job.output"; rename $job, "$job.ran" or warn $!; } sleep 5; }