for ( $loop = 0 ; $loop < THREAD_COUNT; $loop++ ) { print "Starting thread $loop.\n"; $my_threads[$loop] = threads -> new ( \&run_sub, $argument1, $argument2 ); print "thread $loop started.\n"; } for ( $loop = 0 ; $loop < THREAD_COUNT; $loop++ ) { print "waiting for thread $loop...\n"; $result += $my_threads[$loop] -> join; print "done.\n"; } print "result was $result.\n"; sub run_sub { my ( $arg1, $arg2 ) = @_; #do stuff return $number; }