I would like to achieve the following: Run a command and capture its output. While waiting for output, run a subroutine every 10 seconds.

Sounds like exactly the kind of job IPC::Run can do:

use warnings; use strict; use IPC::Run qw/ harness timer /; my @cmd = ( 'perl','-le','sleep 60; print "Done!"' ); my $h = harness \@cmd, \undef, \my $out, \my $err, ( my $t = timer 10 ); my $startt = time; $h->start; printf "%2d started\n", time-$startt; while ( $h->pumpable ) { $t->start; $h->pump; printf "%2d pumped\n", time-$startt; } $h->finish; printf "%2d finished\n", time-$startt; print "stdout: <<$out>>\nstderr: <<$err>>\n";

You can also capture the "live" output of the command, The $out and $err variables should be updated as data from the external program comes in.

Update: See IPC::Run::Timer for details on the timings (on my system the delay in the above ends up being about 11 seconds).


In reply to Re: Using SIG{ALRM} within while loop. by haukex
in thread Using SIG{ALRM} within while loop. by evroom

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.