in reply to Simultaneous system() calls

Windows shells have the start command to launch stuff in a variety of ways. It's a bit of extra overhead because it now requires an extra layer of command interpreter.

For example, start /b turtle.exe will try to launch turtle.exe, and give you a success/fail result code. It will not wait for turtle.exe to finish, so any result code provided by turtle.exe is completely lost.

my $command = "turtle.exe"; if ($^O =~ /win/i) { $command = "start /b $command" } else { $command = "$command &" } my $ret = system($command);
However, there's no shell-accessible way of using Win32's WaitForMultipleObjects() API, which is what you'd need to launch A, B and C, and wait for all three to complete.

--
[ e d @ h a l l e y . c c ]