my %clients :shared; while( my $client = $server->accept; $clients{ client } = fileno( $client ); } ... ## within the threads my $client; my $fileno = $clients{ client }; open $client, "+<&$fileno" or die ... ## dup() the the glob from the fileno ## use $client