Tk already has "threads" :-S
try this:
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');
}
It's a weird example though... what were you planning on doing? Do you really need threads or would Tk timeslicing do?