use Tk; my $mw = new MainWindow(); my $button = $mw->Button(-text => "HEY")->pack(); $mw->after(1,\&thread_sub); # after 1 ms, calls thread_sub # it'll run like a thread, but isn't really! # See http://www.foo.be/docs/tpj/issues/vol1_3/tpj0103-0006.html MainLoop(); sub thread_sub { for (my $i=0; $i<10_000_000; $i++) { # DO NOTHING. LET THE TIME BE TIME } # CHANGE BUTTON'S TEXT PROPERTY TO "hey" HERE $button->configure(-foreground=>'red'); }