in reply to Win32 IPC

Not exactly sure what you mean by 'communicate'; if you just want to read from or write to,
open(READ_CP," myprog |") or die "can't open myprog: $!";
open(WRITE_CP,"| myprog") or die "can't open myprog: $!";
should work. 'course you can't do both at the same time, nor can you do both to the same invocation of the 'myprog.'

If you mean runtime read and write, that's' a lot harder but ... the perl cookbook has code for that. All source for it is available from the O'Reilly site (takes a little digging), if you don't own it (its a wonderful resource) you can always drop by the book store, suss out the right chapter and then dig out the code.

Depending upon what you want, you may need to rethink the communication aspect, can you jam it all into a one-way conversation (e.g. have perl generate the response and then read the output back from a file).

I'm pretty sure that win32 versions of open2/3 are troubled by win32-isms. 5.6 might be better (I hear forking is implemented) but you might find help in the win32FAQ for open.

a

Replies are listed 'Best First'.
RE: Re: Win32 IPC
by Cybercosis (Monk) on Jun 02, 2000 at 21:52 UTC
    It only needs to be unidirectional, sending data to the C program. I tried open(PROC, "| myprog") first, and I got a bad file descriptor error. I'll go a-hunting at O'Reilly, though.