$sock = new IO::Socket::INET( LocalHost => $myip, LocalPort => $port, Proto => 'tcp', Listen => SOMAXCONN, Reuse => 1); $sock or die "no socket :$!"; STDOUT->autoflush(1); #main loop begin { while (($new_sock, $c_addr) = $sock->accept()) { ($client_port, $c_ip) = sockaddr_in($c_addr); $client_ipnum = inet_ntoa($c_ip); $client_host = gethostbyaddr($c_ip, AF_INET); next if $kid = fork; die "fork: $!" unless defined $kid; close $sock; if (&readfromsocket(*new_sock)){ #### if (defined($lineread = <$new_sock>)) {whatever}