#/usr/bin/perl -w use strict; use warnings; use threads; my @arrayRunningThreads = (); &main; sub main { my $thrHandle = threads->create(\&detachedThreads); $thrHandle->detach(); push @arrayRunningThreads, $thrHandle; for(1...3){ $thrHandle = threads->create(\&MustJoin); push @arrayRunningThreads, $thrHandle; } foreach (@arrayRunningThreads){ $_->join() if( $_->is_joinable() ); } print "End. \n"; } sub detachedThreads { sleep 3; print "exiting thread.\n"; } sub MustJoin { sleep 3; print "exiting thread.\n"; }