in reply to perl fork cmd on Windows 2000

You have an old or crappy version of Perl. Get 5.6.1 from ActiveState here. Don't get 5.8 it is too new and untested. You should know that fork() on Windows is an emulation and not really production grade. Better thread support is included in 5.8 but this has only been recently released and does have some issues....

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Replies are listed 'Best First'.
Re: Re: perl fork cmd on Windows 2000
by TheYoungMonk (Sexton) on Dec 17, 2002 at 13:21 UTC
    The build of perl i'm using was developed to specifically suit the application i'm working on. So, it is not feasible to change completely to the build provided by Activestate. Plz...Can some more workarounds or codes be suggested by The Monk Community?

    Pardon if this young monk is overstating.. I heard theres a library to handle proccesses and spawn child processes with Create, Wait etc. in win32-perl. Does anyone have more details or code segments to give a better idea abt this??

    tachyon..Thanks anyway for ur suggestion. The fork code does work under Active PERL !

      You can spawn off another process using Win32::Process. Below is some code I used to open a file in Notepad from a Tk program. Win32::Process is documented pretty well and there are plenty of examples out there. As other monks have stated, I'd be very wary of using fork with Perl on Windows. I've experimented with fork some on Windows and it seems like if you created more than a couple processes, it would crash in various ways.

      my $ProcessObj; Win32::Process::Create($ProcessObj, 'C:/WINNT/notepad.exe', "notepad $file", 0, NORMAL_PRIORITY_CLASS, ".")|| die "Couldn't open the file $file\n";

      «Rich36»
        Thanks for ur suggestion. Win32::process works fine in creating a process, but does it work the same way as a thread..?

        Actually, I am looking for a way to call another perl script file from a script, so the called script will run on the background.To be more specific, even if the file(called-script) i am calling leads to a infinite loop, the calling-script must continue executing...

        Is it possible to do this using Win32::Process ? Does anyone know how to go about it ?

      The build of perl i'm using was developed to specifically suit the application i'm working on.

      That's an interesting idea. Normally I write software to fit within the framework of the language rather than modify the language.....With a languague as internally complex as Perl 5 you really have to wonder who thought that was a good idea and why?

      cheers

      tachyon

      s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print