Any method of reading can block if a filehandle is in blocking mode. So simply changing the function used to read the data won't help.
If you can set non blocking mode on your socket it would let you continue using readline(a.k.a. <$filehandle>), but not all systems are created equal and some may not be as non blocking as you whould like. (For example it is my experiance that sockets could not be made compleatly non blocking on a Win98 system.)
The alternative to non blocking IO is to poll the filehandle to see if it has data to read, or can accept data for writeing. Most event frameworks like those in GUI systems or POE handle most of the work for you. The alternative is to use the 4 arg version of select or the OO wrapper around it IO::Select.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|