use strict; use warnings; use threads; use IO::Socket qw(:DEFAULT :crlf); use Time::HiRes qw( usleep ); my $sock = new IO::Socket::INET (LocalAddr => "localhost", LocalPort => 1000, Proto => 'tcp', Listen => 1, Reuse => 1); my $SOCK; sub sockout{ my $r = shift; print $SOCK "$r\r\n"; } sub chatter{ while (1){ usleep(1000 * 1000); sockout "talkin to myself ..."; } } $SOCK = $sock->accept(); my $thread = threads->create(\&chatter); sockout("CONNECTED!"); while (my $line = <$SOCK>){ sockout("You said ".$line); }