You can use print to output a string, no need for Tk. This is what Tk makes possible:
#! /usr/bin/perl use strict; use warnings; use Tk; my $pi = 2 * atan2 1, 0; sub clock { my ($c) = @_; my ($h, $m, $s) = (localtime)[2, 1, 0]; $m += $s / 60; $h = 5 * ($h % 12) + $m / 12; draw($h, 3, 50, $c); draw($m, 2, 100, $c); draw($s, 1, 100, $c); } sub ftime { sprintf "%02d:%02d:%02d", (localtime)[2, 1, 0] } sub draw { my ($alpha, $w, $l, $c) = @_; my $my = ($alpha < 15 || $alpha > 45) ? -1 : 1; my $mx = $alpha > 30 ? -1 : 1; $alpha = $alpha * 2 * $pi / 60; my $x = $mx * $l * sin $alpha; my $y = $my * sqrt($l ** 2 - $x ** 2); $x = -$x if $alpha >= $pi; $c->createLine(100, 100, 100 + $x, 100 + $y, -width => $w, (-fill => 'grey') x ($w == 1)); } my $mw = MainWindow->new(-height => 200, -width => 200, -title => ftime()); my $c = $mw->Canvas(-height => 200, -width => 200)->pack; $mw->repeat(1000, sub { $c->delete('all'); clock($c); $mw->configure(-title => ftime()); }); MainLoop();
One-linerification left as an exercise to the reader.

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

In reply to Re: Stylish Tk clock -- oneliner by choroba
in thread Stylish Tk clock -- oneliner by Discipulus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.