我在數組中有數百個文件名。我想爲數組中的每4個文件創建一個子進程,並讓那個孩子爲這4個文件中的每一個都做一些事情。 (因此,對於100個文件,我將創建25個進程。)如何在Perl中使用fork()?
我在理解fork時處理行的順序時遇到了一些麻煩。我想我可以做這樣的事情,但我卡住:
foreach $file (@files) {
if ($f++ % 4 == 0) {
my $pid = fork();
if ($pid) {
push(@childs, $pid);
}
elsif ($pid == 0) {
... do stuff to $file ...
}
}
我不認爲這是正確的,我希望有人能指出我在正確的方向。謝謝。
'而(我@ files4 =剪接(@files,0,4)){'(破壞@files,雖然) – ysth
由於你將'$ i'增加了4,所以在切片時不需要將它乘以4,對吧? – itzy
'使用List :: Gen'by';對於我的$ files4(按4 => @files){用@ $ files4做某事}' –