8.5 ファイルに継続的に追加されるデータを読み込む

ファイルに継続的に追加されるデータを読み込みたい。しかし、ファイルのその時点でのEOFに到達すると、読み込みエラーが発生してしまう。

  • EOFまで読み込み、スリープし、EOFフラグをクリアして読み込みを行う。
for (;;) {
  while (<FH>) { .... }
  sleep $SOMETIME;
  seek(FH, 0, 1);   # EOFフラグをクリア
}
  • IO::Handleモジュールのclearerrメソッドを使用して、EOFフラグをクリア
use IO::Handle;

for (;;) {
  while (<FH>) { .... }
  sleep $SOMETIME;
  FH->clearerr();
}