(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");
In reply to Re: PERL Countdown Timer
by ikegami
in thread PERL Countdown Timer
by vicpylon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |