POE::Session->Create ( inline_states => { _start => \&execute_query(); # calls $kernel->yield('result') when done result => \&populate_result(); # fills Tk Widget _stop => sub { $MW->update() }; }, args => [ $sth ], ); POE::Kernel->run();