use Tk qw/MainLoop tkinit DoOneEvent exit DONT_WAIT ALL_EVENTS/; #.... setup your Tk code without a MainLoop statement #then in your Wx timer, put $mw->DoOneEvent( DONT_WAIT | ALL_EVENTS ); # to make Tk responsive