#! perl -sw use strict; use threads; use Thread::Queue; my $Q = new Thread::Queue; async{ $Q->enqueue( $_ ) while <>; $Q->enqueue( undef ); }->detach; sleep 1; print while $_ = $Q->dequeue;