Splitting the files is an attractive and simple solution provided the CPU requirements for processing each file are comparable or there are sufficient of them for the differences to average out. Suppose that assumption isn't true? How would you use Perl to manage a jobqueue which sent the next file for processing to the next available processor?