#!/usr/bin/perl -w use strict; use Curses::UI; my $date = localtime(); my $n = 1; # i've tried -2,-1,0,0.1,0.2,...,<1 my $cui = new Curses::UI(-color_support=>1); my $titlewid = $cui->add('titlew','Window',-border=>0,-height=>1,-width=>34); $titlewid->add('titlel', 'Label',-text =>"my slow motion app!",-bold => 1,-fg=>"blue",-height=>1); my $widclock = $cui->add('clock','Window',-border=>0,-height=>1,-x=>35,-width=>25); $winclock::label = $widclock->add('wclock','Label',-text=>$date,-bold=>0,height=>1,-width=>25); $winclock::label->draw(); $cui->set_binding( sub{exit}, "\cC"); $cui->set_timer('update_timer',\&call,$n); # call back in here $cui->mainloop(); sub call{ print "called!\n"; } #### sub set_timer($$;) { my $self = shift; my $id = shift; my $callback = shift; my $time = shift || 1; $self->fatalerror( "add_timer(): callback is no CODE reference" ) unless defined $callback and ref $callback eq 'CODE'; $self->fatalerror( "add_timer(): id is not set" ) unless defined $id; my $config = { -time => $time, -callback => $callback, -enabled => 1, -lastrun => time(), }; $self->{-timers}->{$id} = $config; $self->set_read_timeout; return $self; }