The odds are that myProgram is detecting that it is not talking to a terminal and therefore is turning on buffering.

One solution is to use Expect to do what you're trying above except that it gives the program you're trying to automate a terminal so that it won't decide to buffer.

Another solution (better when doable, but isn't always doable) is to have the program that you're trying to automate be written as a library with a very small program that calls it. Then you can run the program that you have, and easily write other programs that do the same thing in an automated way.

The big reason to prefer the latter approach is that it is hard with Expect to reliably take care of all of the unexpected outputs that a program can produce when it runs into error conditions. This leads to fragility that will come back and bite you when you least expect it to.


In reply to Re: Communicating with unflushed child process by tilly
in thread Communicating with unflushed child process by gri6507

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.