Leser: 2
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use FileHandle;
...
# Filehandle anlegen
my $fh = new FileHandle;
# Pipe-open
open ($fh, "das_pruefende_programm |") or die "ups... $!";
# Fileevent mit Callback verbinden
$MainWindow->fileevent ($fh, 'readable', \&funktion_die_was_macht);
sub funktion_die_was_macht {
print <$fh>; # Oder was anderes, z.B. den Text in ein Widget einfuegen
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
##### worker.pl ##### #!/usr/bin/perl use strict; use warnings; $|++; # ungepuffert schreiben my $i=0; while (1) { print ++$i, "\n"; sleep 1; } ##### caller.pl ##### #!/usr/bin/perl use strict; use warnings; use Tk; use FileHandle; my $Mw = MainWindow->new (-title => 'Pipetest'); my $LogWin = $Mw->Text (-width => 80, -height => 20)->pack; $Mw->Button (-text => 'Exit', -command => sub { exit })->pack; # Filehandle anlegen my $fh = new FileHandle; # Pipe-open open ($fh, "./worker.pl |") or die "ups... $!"; # Fileevent mit Callback verbinden $Mw->fileevent ($fh, 'readable', \&funktion_die_was_macht); $Mw->MainLoop; ############### sub funktion_die_was_macht { $LogWin->insert ('end', "Lese " . <$fh>); } #####
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |