>>>>> "jweirich" == jweirich  <jweirich / one.net> writes:

    jweirich> I want to start a process and feed it information
    jweirich> through its standard input and read the result from its
    jweirich> standard output.  The "popen" command seems to do one or
    jweirich> the other, but not both at once.  It there a way to do
    jweirich> this?  (Currently I'm using a work-around using a
    jweirich> temporary file).

Use:
     require "open3"
     childin, childout, childerr = Open3::popen3(cmd)

Child is reading from 'childin', writing to 'childout' and 'childerr'

    jweirich> In a similar vein, is there an "expect"-like addon for
    jweirich> Ruby?

You could use the Net::Telnet library.
Use:
    require "net/telnet"
    conn = Net::Telnet.new "Host" => "localhost"
    conn.login "guest", "guest"
    :

Read the documentation in the file: .../ruby/1.6/net/telnet.rb. Is not
so fine like expect, but useable for most of the things.

Alternatively you could try to use the 'expect.rb' with the 'childout'
or whatever above. Simply

   require "expect"

and from now an every IO instance has a method 'expect'.


HTH,
\cle