#test for sharing queue between threads use threads; use Thread::Queue; use Data::Dumper; use Thread; my $queue = new Thread::Queue; sub th1 { while(1) { $queue->enqueue("msg from th1"); print "th1: ADDED ".$queue->pending."\n"; sleep 2; } } sub th2 { while(1) { print "th2: REMOVED ".$queue->pending."\n"; $queue->dequeue_nb; sleep 2; } } $th1 = new Thread(\&th1); $th2 = new Thread(\&th2); $th1->join; $th2->join;