my @dirs = ('/dir1/', '/dir2/', '/dir3/', '/dir4/', '/dir5/', '/dir6/',); my @newfiles = sort {-M $b <=> -M $a} grep {-f } glob("/main/*"); my @seq = (sort {-M $b <=> -M $a} @dirs) x int( 1 + @newfiles/@dirs); for (@newfiles) { my $status = system '/bin/cp', '-f', $_, shift @seq; die 'Copy failed for ', $_, ': Child Error ', $?, $! if $status; unlink $_ unless $status; }