in reply to Send data to STDIN of a exec'ed program

I'm kind of lost as to what you are trying to do. But here is 
an example using IPC::Open3, that might give you some ideas.
After experimenting around with IPC , and pipes etc., I've
come to the conclusion that "sockets" is the best way to
deal with having programs talk to one another, pipes are
too limited.

############################################
#!/usr/bin/perl
use warnings;
use strict;
use IPC::Open3;

#interface to "bc" calculator 
#my $pid = open3(\*WRITE, \*READ, \*ERROR,"bc"); 
my $pid = open3(\*WRITE, \*READ,0,"bc");
            #if \*ERROR is false, STDERR is sent to STDOUT  
while(1){
print "Enter expression for bc, i.e. 2 + 2\n";
chomp(my $query = <STDIN>);

#send query to bc 
print WRITE "$query\n";

#get the answer from bc 
chomp(my $answer = <READ>);

print "$query = $answer\n";
}
########################################
  • Comment on Re: Send data to STDIN of a exec'ed program