Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Interprocess Communication

by ahunter (Monk)
on Jul 04, 2000 at 18:59 UTC ( [id://21019]=note: print w/replies, xml ) Need Help??


in reply to Interprocess Communication

I have no experience with Expect.pm, so maybe that is what you want, but if not, or you want to stick with modules that are part of the standard distribution, IPC::Open2 and IPC::Open3 give you the ability to open pipes both to and from a child process. Something like (untested):
use IPC::Open2; local (*RD, *WR); my $child = open2(\*RD, \*WR, 'passwd'); # RD and WR are now pipes connected to STDOUT/STDERR and # STDIN respectively of the child process. $child contains # the PID. my $prompt = <RD>; # not caring what the prompt is, here print WR "password\n"; $prompt = <WR> # prompted again print WR "password\n";
Though, to make the code robust, you will want to check the prompts, and probably deal with SIGCHLD yourself so you can get return conditions and so on. You should also set an alarm to time out if something blocks unexpectedly.

Andrew.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-03-28 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found