在bin下的collect.pl里的$start和$end计算很难理解阿?
请高手指教。其中ftpsite是一个包含ftp的list,onechild()为一个函数。
[php]
$siteperchild=int $#ftpsite / $N_CHILD; #number of batch to exec
$temp= $#ftpsite % $N_CHILD; #number of child at last batch
for ($child=0; $child<$N_CHILD; ++$child) { #child: i
if(($childpid[$child]=fork())==0) {
my ($start, $end);
if ($child < $temp) {
$start= $child *($siteperchild+1);
$end=$start+$siteperchild;
} else {
$start= $temp * ($siteperchild+1) + ($child - $temp)*$siteperchild;
$end=$start+$siteperchild-1;
}
onechild(@ftpsite[$start..$end]);
exit;
}
}
for ($child=0; $child<$N_CHILD; ++$child) {
waitpid($childpid[$child],0);
}
exit;
[/php] |