in reply to join() in perl threads does not return

If you are on Windows and want to launch a process in the background, maybe consider avoiding threads and use the special form of system, as documented in perlport:

my $child_pid = system(1, @args); ... kill 9 => $child_pid; # boom