<p>I've seen some horrific code written in Perl, but I can't make head nor tail of this one:</p>

<pre><code>select((select(s),$|=1)[0])
</code></pre>

<p>It's in some networking code that we use to communicate with a server and I assume it's something to do with buffering (since it sets <code>$|</code>).</p>

<p>But I can't figure out why there's multiple <code>select</code> calls or the array reference. Can anyone help me out?</p>

It's a nasty little idiom for setting autoflush on a filehandle other than STDOUT.
```
select()
```
takes the supplied filehandle and (basically) replaces STDOUT with it, and it returns the old filehandle when it's done.
So
```
(select($s),$|=1)
```
redirects the filehandle (remember
```
select
```
returns the old one), and sets autoflush (
```
$| = 1
```
). It does this in a list (
```
(...)[0]
```
) and returns the first value (which is the result of the
```
select
```
call - the original STDOUT), and then passes
that
back into another
```
select
```
to reinstate the original STDOUT filehandle. Phew.
But now you understand it (well, maybe ;)), do this instead:
```
```
use IO::Handle;
$fh->autoflush;
```
```