Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

pipes question

by mouser13 (Novice)
on Jan 07, 2013 at 16:10 UTC ( [id://1012054]=perlquestion: print w/replies, xml ) Need Help??

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

hello I'm trying to use pipes to run jython interpter(It very slow on are machine 5-8 secs to load and another 8-10 secs to connect to the database in from jython interpter) So I was hoping to use PersistentPerl to load these. But I have run into a problem I don't really know how to know when the program has finished running the interpter and then finished running the database connection. Is their any way to get the output and send input? The only way I can think to do it is have the database right out a file when it is done? That option seems jury rigged a bit more then I would like. Anyways does anyone have a way to have bi-directional commication from a thrid party program.
open( $info, "|-", "jython"); print $info "execfile(\"databaseconn.py\")\n";
It works but I don't know when it done to send the other commands need to produce the plots I require. I was hoping for something with pipes so I can read the output from the databaseconn.py. Ie I added a line at the end that says loaded. Hoping to be able to read from the output of the file and look for the loaded command.

Replies are listed 'Best First'.
Re: pipes question
by quester (Vicar) on Jan 08, 2013 at 08:55 UTC

    Pipes aren't quite flexible enough to do that sort of two-way communication with the spawned process. There are two ways that I know of offhand that will work: one is IPC::Open3 and the other is Expect.pm.

    Open3 is conceptually like having pipes to both input and output (and stderr). Expect is closer in spirit to logging in as an interactive user; it gives you the ability to script a two-way conversation with the spawned process. Either one is going to take quite a bit of reading and trying test cases to digest and understand.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1012054]
Approved by ww
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-25 22:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found