›hereバッファリングを無効にするブロックバッファリングは、出力を書き込みバッファに貯めて、蓄積した分を一度に書き出すのでパフォーマンス面では非常に効率的でした。ローカルのファイルに書き出す場合はこれで問題になることはまずありません。問題が発生するのは、他のプロセスと通信するときです。Perlは、プロセス間通信の機能を使ってローカルの他のプロセスと通信したり、ソケットという機能を使ってネットワーク越しの他のプロセスと通信することができます。このときブロックバッファリングが行われていると、自分は相手に対してデータを送ったつもりでも送れていないということが起こります。自分自身の書き込みバッファに残ったままになるわけです。これを解決するために、ブロックバッファリングをコマンドバッファリングに変更する方法があります。コマンドバッファリングを有効にするには特殊変数「$|」を1にセットします。1;サンプル以下はコマンドバッファリングに切り替えるサンプルです。コマンドバッファリングを有効にする。元のファイルハンドルに選択しなおす。"この時点で書き込まれました。(参考)sleep関数、open関数、close関数、die関数コマンドバッファリングPerlは、まったくバッファリングしない書き込みというのはサポートしていません。1文字づつ書き込むということが必要になることはないからです。変わりに、printというコマンドが終わった時点で、書き込みを行うコマンドバッファリングを使うことができます。print関数を記述して、次の文を実行する前には、出力に書き出されるということが保障されます。コマンドバッファリングは、対話型の通信を行うときに使うことが多いです。相手にデータを送って、返答を待ち構えるとします。ネットワーク越しにデータを送るには、ソケット(一種のファイルハンドル)というものに書き込んで、返答を待ちます。このときもしブロックバッファリングが有効になっていると、書き込んだつもりでも実は書き込みバッファに溜め込んだままで、実際には書き込んでいないということになります。これを回避するために、コマンドバッファリングは使われます。コマンドバッファリングを有効にする。元のファイルハンドルに選択しなおす。1を設定することで、コマンドバッファリングが有効になります。対する操作は、「デフォルトの出力先」に対する操作になるということです。「デフォルトの出力先」というのは、print関数でファイルハンドルを省略したときの出力先のことです。デフォルトの出力先はSTDOUTです。操作した後、元に戻しておきます。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebサービス開発も。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。