in reply to fork and open3 on Win32

Maybe just me but I found fork a little flakey under Windows.

It's not portable but you could use this inside an OS specific flag to create a separate process:

use Win32::Process; my $ProcessObj; Win32::Process::Create($ProcessObj, "c:\\Perl\\bin\\perl.exe ", " $temp_file ", ### Script to execute 1, ### If set to 0 this prevents children ### writing to STDOUT which is BAD... NORMAL_PRIORITY_CLASS, ".") || die ErrorReport();

Look up the docs on win32::process and do a search on this site (the dos are a little hard to read, IMHO, so be prepared to experiment). You should be able to get the two process communicating through temporary files if you can't get them to cohabit happily on STDIN.

Replies are listed 'Best First'.
Re: Re: fork and open3 on Win32
by Mungbeans (Pilgrim) on Apr 30, 2001 at 13:54 UTC
    Hmmm - missed something.

    This will run in the background, and the parent won't wait for the child to complete. $temp_file could contain the name of the script you are running with flags -child=1 -parent=$$ or somesuch.