質問なのですが、
引数でファイルが指定されていたら中身をデータとしてよみこむか、
そうでなく標準入力があるならその中身を読み込むか、
どちらもないなら、デフォルトのデータを読みたい(__DATA__以下など)場合に
str = (ARGF || DATA).read
p str
みたいに書いてたのですが、ARGFはnilにはいらないみたいですし、
ファイルの指定がなくて標準入力からの入力になった場合に、入力待ちになり停止してしまいます。
標準入力がない場合はスルーして、DATAから読む方法はないものでしょうか?