|
sub execute_command { return unless defined($command) && $command ne ""; logline("*** execution of $command ***\n"); msg("starting execution of $command"); my $fh = new IO::File "$command 2>&1 |"; while (<$fh>) { logline($_); } $fh->close; msg(""); } sub logline { my $line = shift; $execwin->insert('end', $line); $execwin->see('end'); $top->idletasks; } |
execute_command eröffnet eine Pipe zu dem
auszuführenden Kommando und gibt jede Zeile an
logline() weiter.
| |
logline fügt jeweils eine Zeile zu dem Fenster,
in dem die Ausgaben des auszuführenden Kommandos
protokolliert werden.
| |
Während der Ausführung von execute_command
können keine Ereignisse von X abgearbeitet werden.
Auch die Aktualisierungen bleiben unberücksichtigt,
wenn die zentrale Ereignisschleife nicht kurzfristig
Gelegenheit erhält, sich darum zu kümmern.
Dies geschieht mit $top->idletasks.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |