#!/usr/bin/perl use strict; use threads; use Thread::Queue; my $q = Thread::Queue->new(); for (1..3) { $q->enqueue('A' x 100); threads->new(\&ttest) } my @threadlist = threads->list; sleep 100; $q->enqueue(undef) for @threadlist; $_->join for @threadlist; sub ttest { while (my $item = $q->dequeue) { my $cnt = $q->pending; print "$cnt\n"; $q->enqueue('A' x 100); } }