in reply to Yet another spawn question. Portable method?
I found runN to be an acceptably cross-platform solution.
Another solution could be to just copy Parallel::ForkManager into your program.
Also see PAR::Packer.