..... use strict; use Socket; use threads; use threads::shared; ....... my %clients :shared; ...... my $server = IO::Socket::INET -> new(.....); ..... while( my $client = $server -> accept ) { ..... ############### in next 2 strings i'm wall!!! i don't know how push $socket (it's reference to NANDLE, isn't it?!) in shared hash %clients, and then get it back like a handle!! the best error i've had, was "Bad file descriptor" ################ $clients{ "$client_ip:$client_port" } = *client{IO}; # add new socket to %client syswrite( $$qwe{IO}, "hi, how are you??") || die ":$! _ $@"; ..... }