for ( 1..2 ) { threads -> create ( \&worker ); } #### for ( 1..2 ) { my $temp_scalar = threads -> create ( \&worker ); } #### $ perl pm_1228826.pl sum=1 sum=2 #### use strict; use warnings; use threads; use Thread::Queue; my $process_q = Thread::Queue -> new(1,2); sub worker { while ( $process_q -> dequeue() ) { my $retVar=threads -> self() -> tid(); return $retVar; } } $process_q -> end(); #start some threads for ( 1..2 ) { my $tmp = threads -> create ( \&worker ); } #Wait for threads to all finish processing. foreach my $thr ( threads -> list() ) { my $sum=$thr -> join; print "sum=$sum\n"; }