sub clientHandler { my( $fileno ) = shift; open my $client, ">&=$fileno" or die $!; while( <$client> ) { ...; } } while( my $client = $svr->accept ) { threads->create( \&clientHandler, fileno( $client ) ); }