use warnings; use strict; use Tk; use POE; my $killAll = 0; POE::Session->create (inline_states => {_start => \&startApplication, searchmode => \&searchMode}); POE::Session->create (inline_states => {_start => \&searchUpdate}); POE::Kernel->run(); # Relevant is also: sub startApplication { my $main = MainWindow->new; $main->Toplevel(-title => "Search"); MainLoop; $killAll = 1; } sub searchUpdate { while (! $killAll) { sleep 1; print '.'; } }