#! perl -slw use strict; use threads; use Carp; sub thread { my $x = shift; eval{ my $y = 100 / $x; } or croak "$@"; } async( \&thread, $_ )->detach for reverse 0 .. 3; sleep 10 __END__ C:\test>junk Thread 4 terminated abnormally: Illegal division by zero at C:\test\junk.pl line 9. at C:\test\junk.pl line 8 thread 4 main::thread(0) called at C:\test\junk.pl line 12 thread 4 eval {...} called at C:\test\junk.pl line 12 thread 4 ;