foreach my $remote (@iplist){ foreach my $port (@iprange){ if (my $pid = fork){ waitpid, $pid; print "$remote on $port test finished..."; # check $? } else { # check stuff exit ( $test_succeeded ) ? 1 : 0; } } }