I use perl 5.6.1 under Windows because it needs to run in this environment ... I also tried it in perl 5.8.8 but it didn't print the output at all
The important part of code of the application:
use Tk;
require Tk::ExecuteCommand;
$top = MainWindow->new;
$executecommand = $top->ExecuteCommand( -height => 10, -scrollbars =>
+'se', bg => 'white')->pack( -expand => 'yes', -fill => 'both' );
$executecommand->terse_gui;
$executecommand->bell;
$executecommand->update;
$b_savelog = $top->Button(
-text => "Start script",
-width => 12,
-command => sub {
$executecommand->configure( -command => "sleep.pl");
$executecommand->execute_command;
}
)->pack( -side => 'right' );
MainLoop;
and the sleep.pl for testing:
print "Starting...";
sleep 10;
print "end\n";
...in the real application I start script which finds specified files in filesystem, parses them and then starts some other scripts ... which takes several minutes
I was thinking about using threads, but I know about some problem with Tk and threads. I think a way could be to change somehow the Tk::ExecuteCommand (http://search.cpan.org/~lusol/tkjuke-1.0.6/Tk/ExecuteCommand.pm) - but I don't how yet...
|