Perl countdown?

Is eigentlich ne blöde Frage,
aber wie bekomm ich in Perl nen gescheiten Countdown gebaut?

Ich hab mal folgendes versucht:
Code:
my $last_time = time();
my $timeout_end = time()+10;
while( 1 ){
      if( time() > $timeout_end ){
            last;
      }else{
            if( time() > $last_time ){
                  print ".";
                  $last_time = time();
            }
      }
}
Jedoch schreibt der net wie geplant jede Sekunde einen . in die Konsole, sondern wartet die 10 Sekunden ab und schreibt dann alle Punkte auf einmal^^

Ich nehm mal stark an dass das damit zusammenhängt dass die Konsole aufgrund der hohen CPU-Auslastung während der Schreife einfach net dazu kommt etwas auszugeben...

Kann mir jemand n Tipp geben wie ich einen Resourcensparenden Coundtown schreiben kann?

MFG - Keks
 
Probier's mal hiermit:
Code:
for($c=0;$c<10;$c++)
{
    print ".";
    $t=time();
    while((time()-$t)<1){};
}

PS: Dein Code funzt bei mir aber auch.

edit2:
habe noch eine Lösung, die nicht so viel CPU verbraucht:
Code:
for($c=0;$c<10;$c++)
{
    print ".";
    sleep(1);
}
 
Zurück
Oben