$|=1; sets autoflush on the current default output, while select((select(STDOUT), $|=1)[0]); starts with some default output, then selects STDOUT as the
default output and sets autoflush there, then selects the original starting default output. These are certainly different (especially when the starting default output isn't STDOUT.)
chas