배열에 수백 개의 파일 이름이 있습니다. 배열의 4 개 파일마다 하위 프로세스를 만들고 해당 하위 프로세스에 4 개의 파일 각각에 몇 가지 작업을 수행하려고합니다. (그래서 100 개의 파일로 25 개의 프로세스를 생성합니다.)Perl에서 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 '을 (를) 사용하십시오'; 내 $ files4에 대해 (4 => @ 파일) @ {$ files4}로 뭔가를하십시오. ' –