#! perl -slw use strict; use Time::HiRes qw[ time ]; use threads; use Thread::Queue; $|++; my $Qin = new Thread::Queue; my $Qout = new Thread::Queue; my $t1 = async { while( my $in = $Qin->dequeue ) { $Qout->enqueue( $in + 1 ); } }; my $start = time; $Qin->enqueue( 1 ); while( my $in = $Qout->dequeue ) { $Qin->enqueue( $in + 1 ); printf "\rMessages per second: %.3f", $in / ( time() - $start ); } __END__ [13:29:53.76] c:\test>junk37 Messages per second: 21791.810Terminating on signal SIGINT(2) Messages per second: 21791.633