while (1) { ($read, $write, $err) = IO::Select->select($sockin, $sockout, $sockerr, 1); for $sock (@$read) { $sock->recv($data, 1024 * 64, 0); next if $! == EAGAIN() || $! == EWOULDBLOCK(); next if (-e 'server.pid'); system ('./sleep.pl'); } }