in reply to Perl Open2/3 and .exe

i can't write "<any key>" to the process I created through open2

No, the problem isn't with writing. As you said yourself, <> is blocking, and that's a reading operation.

<> reads until a newline is encountered (by default). However, "Press any key to continue . . ." doesn't end with a newline. Since you told perl to read until a newline is encountered. Perl happily waits for more input that will never come. Obviously, <> is not the right choice here, at least not with the default value for $/.

In addition to that problem, the output of abc or pause could be buffered, but you haven't shown that you've encountered that problem yet. Hopefully it isn't. since you'll have to convince them their STDOUT is connected to a console while it's actually connected to a pipe.

Update: Oh wait, you don't actually wait before sending \n. hmmm, let me test a bit.