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";
}
########################################
|
|---|