use IO::Socket::UNIX; $SIG{INT} = sub { unlink "/tmp/sock" }; $srv = IO::Socket::UNIX->new(Local=>"/tmp/sock", Listen=>1); while ($sock = $srv->accept) { $sock->blocking(0); for(1..999){ $sock->syswrite(sprintf "%03d %s\n", $_, "=" x ($_/10)); } $sock->close; } #### use IO::Socket::UNIX; use IO::Select; $SIG{INT} = sub { unlink "/tmp/sock" }; $srv = IO::Socket::UNIX->new(Local=>"/tmp/sock", Listen=>1); while ($sock = $srv->accept) { $sock->blocking(0); $sel = IO::Select->new; $sel->add($sock); for(1..999){ do { @ready = $sel->can_write(1) } until @ready; $ready[0]->print(sprintf "%03d %s\n", $_, "=" x ($_/10)); } $sock->close; }