use Thread::Queue; my $control_queue = new Thread::Queue; . . . #Auf Knopfdruck: $control_queue->enqueue('stop'); #Im Thread dann irgendwo die queue abfragen und auf Kommando aussteigen sub mythread { while (! $exit) { . . . if ($control_queue->pending) { if($control_queue->dequeue eq 'stop') { $exit=1; } } threads->detach(); }