in reply to Tk version Geek clock

Tk is event driven, and MainLoop handles all the events. One type of events can be handled by MainLoop is called timer event. You don't need sleep, you don't need alarm. Tk provides you a way to schedule timer event.

Just delete that Button, as you don't need it any more, and right before MainLoop, add this line:
$mw->repeat(1000 => \&refresh);
It should work. Let your Geek Clock bring you into 2003.