>>165
に書いた

$_ は、パイプの前段から渡ってくるもの

パイプの前段が、nil なら、エラーになる。
nil.Name に、Name 属性はない

1つが返ってくると、単数型.Name。
2以上なら、配列.Name

nil, 単数型・複数型に、Name 属性があるかどうか、
3つの条件処理で分けないといけない

大文字に変換する、Ruby の1-liner、
ls | ruby -ne 'print $_.upcase'

これが動く原理は、-e オプションで、
print $_.upcase を、暗黙の内にループで囲むから

jQueryオブジェクトに変換してるのと同じ。
前段の戻り値が、0, 1, 2以上のすべてのパターンを一旦配列化して、each を呼ぶから

配列化して、each するから、必ず配列の要素型になるから、
3つの条件処理で分けなくてもよい

>>166
では、配列化して、each を使っていないから、

パイプの前段が、0のnil, 1の単数型・2以上の複数型と、
3つの条件処理で分けないといけない