I think
system is what you're looking for -- what's the problem with it? If you set
$SIG{CHLD} = 'IGNORE' then you can pretty much forget about them. Actually I'm not sure if SIGCHLD is even simulated on Win32 (sounds tricky). The only caveat about exec is shared IO handles, but it sounds like that doesn't matter. (Personally, I'd just reopen STDOUT and STDERR to a log file and let it fly).
If you really are against using a core function, look at
Win32::Process, you can create a process, then toss the object (or use in a void context).
HTH
Update: I'm a putz. s/exec/system/ =P
Update2: Oh yeah, no '
foo &' for BG in Win32! right. How about this: instead of
system, do a
fork, then make the child
exec. Or, if you fork, then system, you can do a finish-up task, such as a notification. Anyone else want to comment? :>
mhoward - at - hattmoward.org