in reply to Perl/Tk question about starting programs via a button

I borrowed this script from Term::ReadLine::Tk. You'll need to use tkwait():
sub Tk_loop { Tk->tkwait('variable',\$giveup); $count_DoOne++, Tk::DoOneEvent(0) until $giveup; $count_loop++; $giveup = 0; }