青木です。

  In mail "[ruby-dev:24449] Re: ARGF.read(len) and EOF"
    Yukihiro Matsumoto <matz / ruby-lang.org> wrote:

> まつもと ゆきひろです

> ARGFは引数にファイルが指定されている時には、そのすべてを連結
> した仮想的なファイルとして動作し、その仮想ファイルが(最後の
> ファイルの)EOFに突き当たってからもう一度読もうとすると、今度
> は改めて標準入力から読み込む、という動作になっています。

この仕様自体を変えるわけにはいかないでしょうか?

ARGF は元はと言えば UNIX コマンドの慣習をカプセル化した
オブジェクトですよね。その由来を考えると、最初に ARGF から
読み込んだ時点で

  * ARGV をファイル名のリストとみなして読む
  * stdin から読む

のどちらかに確定するのが適切だと思うのです。

具体的には while line = gets をネストしているときに困ります。
この仕様を回避するためだけにライブラリを書いたくらいです。
-------------------------------------------------------------------
青木峰郎