http://qs321.pair.com?node_id=316979
Category: GUI Programming
Author/Contact Info
Description: This is a simple Tk script to countdown the days, hours, minutes, seconds, and milliseconds until a particular event. It requires Tk, DateTime, and Time::HiRes.

The script creates a window in the upper-right corner of the screen and displays the countdown information there.

Have fun.

Update: Upper-left

use warnings;
use strict;

use Tk;
use DateTime;
use Time::HiRes qw(time);

my $time;

# Specify the day you're counting down to here
my $then = DateTime->new(year => 2003, month => 12, day => 30, hour =>
+ 17,
                         minute => 30, second => 0, time_zone => 'loca
+l');

my $mw = MainWindow->new;
$mw->Label(-textvariable => \$time, -font => "{arial} 12 bold")->pack;

$mw->repeat(4, \&update);
update();

$mw->overrideredirect(1);
$mw->geometry("+0+0");

MainLoop;

sub update {
    my $now = DateTime->from_epoch(epoch => time, time_zone => 'local'
+);

    my $dur = ($then - $now);
    $time =  $dur->days . " days  ";
    $time .= $dur->hours . ":";
    $time .= sprintf("%.2d", $dur->minutes) . ":";
    $time .= sprintf("%.2d", $dur->seconds) . ":";
    $time .= sprintf("%.3d", int($dur->nanoseconds / 1000000));
}