Eradicatore has asked for the wisdom of the Perl Monks concerning the following question:

Ok, I have tried to use Open2 to solve my previous post Win32::Process and Sockets question, and here is what I have so far. It works on my unix solaris workstation with perl 5.004_04 but doesn't work on windows on perl 5.6.0. What I mean by doesn't work is the child process never sees anything on the handle "STDIN". It just immediately prints "child done". Anyone have any idea?
Here is the first file:
#!/usr/local/bin/perl -w use IPC::Open2; #$| = 1; open2(\*IN, \*OUT, "f2.pl"); print OUT "proclist\n"; print OUT "quit\n"; while ($line = <IN>) { print "parent:$line"; } close IN; print "parent done\n"; close OUT; exit;

and here is the second file called f2.pl
#!/usr/local/bin/perl -w use IPC::Open2; #$| = 1; while ($line = <STDIN>) { #last if ($line =~ /quit/i); print "child_got_this:$line"; } print "child done\n"; exit;
On windows it returns this:
parent:child done
parent done

Thanks for any help!!!

Justin Eltoft

"If at all god's gaze upon us falls, its with a mischievous grin, look at him" -- Dave Matthews

Replies are listed 'Best First'.
(tye)Re: My latest IPC::Open2 attempt
by tye (Sage) on Sep 26, 2001 at 02:23 UTC

    Replace "f2.pl" with "$^X f2.pl". See the docs for pl2bat for more info.

            - tye (but my friends call me "Tye")
      Thanks sooooo much. That worked great! Now I just need to verify it does exactly what I want. That is, the second child process here can do things totally on it's own, and not make my tk gui "freeze" while I go get a web page. Thanks again for all your help!

      Justin Eltoft

      "If at all god's gaze upon us falls, its with a mischievous grin, look at him" -- Dave Matthews