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 { $poe_main_window->Toplevel(-title => "Search"); $killAll = 1; } sub searchUpdate { while (! $killAll) { sleep 1; print '.'; } }