in reply to
Deep recursion in Tk repeat
Rather than attempting to guess the refresh rate beforehand, you could work it out at runtime, then use this to drive your main loop - something roughly like...(untested, obviously)
use Time::Hires;
$avg_num=10; # or whatever
$s=time(); #Time::Hires floating-point drop-in
$taxis->taxis() for (0..$avg_num);
$refresh = (time()-$s)/$avg_num;
$refresh = $sensible if ($refresh < $sensible;}
while(1) {
$start=time();
$taxis->taxis();
do {
DoOneEvent( $running ? DONT_WAIT : ALL_EVENTS );
}
until (time()-$start > $refresh);
}
Cheers, Ben.