http://qs321.pair.com?node_id=149011


in reply to IO::Socket should be readable, but isn't....

I'm not certain, but your problem may be related to this caveat from the documentation for select:
WARNING: One should not attempt to mix buffered I/O (like `read' or <FH>) with `select', except as permitted by POSIX, and even then only on POSIX systems. You have to use `sysread' instead.
This is because, although select will tell you that there is some input waiting on the filehandle, there may not be enough input available to fill the buffer used by read() or <FH>. If this happens, the read will block waiting for more input. Switching to sysread() may fix your script.
  • Comment on Re: IO::Socket should be readable, but isn't....

Replies are listed 'Best First'.
Re: Re: IO::Socket should be readable, but isn't....
by blogan (Monk) on Mar 03, 2002 at 23:00 UTC
    I knew I couldn't use it with read, but I thought I might be find with using select, because the way POP3 works is that the client or server will never send a partial line. I did use a version that worked using sysread(), the downside was that I want to be able to work with data 1 line at a time. I suppose I can use a system where I use sysread to fill a buffer and then use another function to extract a line from the buffer.