ファイルハンドルの変更select

back
現在のファイルハンドルを返し、引数のファイルハンドルを
デフォルトファイルハンドルに変更する。
バッファリングを抑制する
$| = 1;
を指定する際に使う(のかな)

--------
#!/usr/bin/perl

print "1\n";
open(F, "> aaa.log");
print "2\n";
$old = select(F);
print "3\n";
select($old);
print "4\n";
close(F);
print "5\n";
--------

STDOUT へ出力されるのは
1
2
4
5
ファイル aaa.log へ出力されるのは
3
となる。

open したファイルハンドル FH のバッファリングを抑制するイディオムは

select((select(FH), $|=1)[0]);

back