in reply to PERL Countdown Timer
(A quick aside: The language is Perl, not PERL.)
use strict; use warnings; my $countdown = 1*60*60; # in secs. $| = 1; my $beg_time = time; my $end_time = $beg_time + $countdown; for (;;) { my $time = time; last if ($time >= $end_time); printf("\r%02d:%02d:%02d", ($end_time - $time) / (60*60), ($end_time - $time) / ( 60) % 60, ($end_time - $time) % 60, ); sleep(1); } print("\rKABOOM!!!!\n");
Below is an alternative, but it will drift. That means that if you count down for 12 hours, it may take 12 hours and 5 minutes, or even much more than that, depending on CPU utilisation of other processes and more. I'm providing it as an example of what you should NOT do.
Bad code:
use strict; use warnings; my $time_left = 1*60*60; # in secs. while ($countdown--) { printf("\r%02d:%02d:%02d", $time_left / (60*60), $time_left / ( 60) % 60, $time_left % 60, ); sleep(1); } print("\rKABOOM!!!!\n");
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: PERL Countdown Timer
by zentara (Cardinal) on Nov 16, 2004 at 18:13 UTC | |
by ikegami (Patriarch) on Nov 16, 2004 at 18:33 UTC | |
|
Re^2: PERL Countdown Timer
by Anonymous Monk on Feb 13, 2013 at 17:53 UTC |