diesmal könnt ihr mich nicht hinweisen, ich hätt mal die perldoc lesen sollen...
also folgendes: Ich will nen Ping in echtzeit in ein Textwidget schreiben. Da das Programm auch noch andere dinge tun soll, will ich das ganze mit nem fileevent machen.
mein code sieht so aus:
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
#!/usr/bin/perl
use warnings;
use Tk;
open(PING, "ping 127.0.0.1 -t |")
or die "Fehler: $!\n";
my $mw = MainWindow->new();
my $t = $mw->Text(-width => 80, -height => 25, -wrap => 'none');
$t->pack(-expand => 1);
$mw->fileevent(\*PING, 'readable', [\&print_widget, $t]);
MainLoop;
sub print_widget {
my($widget) = @_;
$_ = <PING>;
print $_;
$widget->insert('end', $_);
$widget->yview('end');
}
Es gibt
keine Fehlermeldung, es scheint irgendwie vom Syntax richtig zu sein. Allerdings füllt er das Textwidget nicht. Wieso?