I'm trying to interface with an interactive, shell-like program running inside a Docker container, but I think my question applies to any interactive program with prompts and such, /bin/bash, for example. Basically, I need to get the output from the program being controlled until it displays a prompt and waits for input, then provide a line of input to the program when/as specified by the user, get the output, and then repeat until the program being controlled exits. I plan to get the input lines one at a time from a message queue (suggestions welcome) and return the subsequent output to the user. Starting and stopping the program being controlled for each input isn't an option as the program isn't stateless, so it needs to stay running between inputs.

I've read the AnyEvent Intro, FAQ, and AnyEvent::Handle pods and scoured the web for examples, but I haven't come across an example that seems to deal with this level of interactivity.

If someone can spare a clue or some sample code, I would be very appreciative.


In reply to Using AnyEvent to control an interactive program by Darth Ed

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.