I put it in a simple sub. Easy to adjust if you want to include additional parameters such as a pre or post message.
countdown(10);
sub countdown($) {
#countdown(seconds);
my ($duration) = @_;
my $end_time = time + $duration;
my $time = time;
while ($time < $end_time) {
$time = time;
printf("\r%02d:%02d:%02d", ($end_time - $time) / (60*60), ($en
+d_time - $time) / (60) % 60,($end_time - $time) % 60); #00:00:10
$|++;
sleep 1;
}
}
countdown(10, "before", "after");
sub countdown($$$) {
#countdown(seconds, "premessage", "postmessage");
my ($duration, $premessage, $postmessage) = @_;
my $end_time = time + $duration;
my $time = time;
while ($time < $end_time) {
$time = time;
printf("\r%s %02d:%02d:%02d %s", $premessage, ($end_time - $ti
+me) / (60*60), ($end_time - $time) / (60) % 60,($end_time - $time) %
+60, $postmessage); #before 00:00:10 after
$|++;
sleep 1;
}
}
|