Man kann auch eine waitVariable() benutzen.
Ich würde sagen das wäre der sauberste Weg:
my $v=0;
$mw->after(5000, sub { $v=1 });
$mw->waitVariable(\$v);
Und das geht in einer Schleife:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings 'all';
use Tk;
my $mw = tkinit;
for (0..100)
{
my $v=0;
$mw->after(100, sub { $v=1 });
$mw->waitVariable(\$v);
print "Nummer $_\n";
}
exit;
Ich glaube da gibt es nur bei Windows einen Fehler. Wenn man die Titelzeile des Fensters anklickt, bleiben alle Ereignisse der GUI stehen, bis man wieder loslässt.
Das dürfte aber kein Problem sein, oder?
- PerlProfi -