У меня есть сотни имен файлов в массиве. Я хочу создать дочерний процесс для каждых 4 файлов в массиве, и чтобы этот дочерний процесс выполнял некоторые действия с каждым из этих 4 файлов. (Так что при 100 файлах я создам 25 процессов.)
У меня проблемы с пониманием порядка, в котором обрабатываются строки, когда происходит форк. Я думал, что могу сделать что-то вроде этого, но я застрял:
foreach $file (@files) {
if ($f++ % 4 == 0) {
my $pid = fork();
if ($pid) {
push(@childs, $pid);
}
elsif ($pid == 0) {
... do stuff to $file ...
}
}
Я не думаю, что это правильно, и я надеюсь, что кто-нибудь сможет направить меня в нужном направлении. Спасибо.