Thank you for your help!

finally I solved it with threads:
#!/usr/bin/perl use threads; use threads::shared; require Thread::Queue; $Q = new Thread::Queue; share $Script; share $Terminate; share $start_work; $Terminate =0; $start_work = 0; threads->new(\&worker)->detach; use Tk; require Tk::ROText; $top = MainWindow->new; $text = $top->Scrolled('ROText'); $text->pack(qw/-expand 1 -fill both/); $b_startdir = $top->Button( -text => "Start command", -width => 12, -command => sub { $Script = "ping example.org"; $start_work = 1; } )->pack( -side => 'right' ); my $repeat; $repeat = $top->repeat( 300 => sub { eval { while ($Q->pending) { my $buffer = $Q->dequeue; return unless $buffer; $text->insert('end', $buffer); $text->see('end'); } }; if ($@) { warn "$@"; $repeat->cancel; } } ); MainLoop; $Terminate = 1; sub worker { while(!$Terminate){ if ($Script && $start_work) { open PROC, "$Script 2>&1 |" or die "ERR: unable to start $Script +\n"; while (sysread(PROC, my $buffer, 1024) > 0) { $Q->enqueue($buffer); if (!$start_work) {last;} } close PROC; $Script = undef; $start_work = 0; } else { sleep 1; } } }

In reply to Re^4: Tk::ExecuteCommand - GUI not responding by executing longer running script by dzon
in thread Tk::ExecuteCommand - GUI not responding by executing longer running script by dzon

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.