タグ

ブックマーク / kaede.to/~canada (1)

  • おさかなラボ - [Perl]バッファのFlushを1行で安全に

    デフォルトのファイルハンドル(多くの場合STDOUT)のバッファをflush(バッファを強制出力)するのは$| = 1;として、print "";すればいいのだが、現在デフォルトのファイルハンドルとは違うファイルハンドルをflushしたい場合、select($file_handle);としてから$| = 1としなければならない。$|は元々何だったかも覚えておかないといけない。selectする前のファイルハンドルも元に戻さないといけない。実はいろいろすることがある。そのために取っておいた変数は掃除しないといけない。とするとコードはこうなる。 { my $old_fh = select($fh); my $old_dolcol = $|; $| = 1; print ""; $| = $old_dolcol; select($old_fh); } これを1行でかくとこうなる。

  • 1