#!/usr/bin/perl use threads; { package MyObj; sub new { my $class = shift; bless [shift], $class } sub DESTROY { warn "Destroying " , shift->[0]; } } async { my $obj = MyObj->new("detach"); sleep 1 }->detach; async { my $obj = MyObj->new("join"); sleep 2 }->join; my $obj = MyObj->new("main"); sleep 3;