>>75
今更だが、少なくともArray.<<はプッシュということはソースからもうかがえる

http://svn.ruby-lang.org/repos/ruby/trunk/array.c
2980: rb_define_method(rb_cArray, "<<", rb_ary_push, 1);
2981: rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);

Array.<<はrb_ary_pushで、Array.pushはrb_ary_push_mだと定義してる


0453: rb_ary_push(VALUE ary, VALUE item)
0454: {
0455: rb_ary_store(ary, RARRAY_LEN(ary), item);
0456: return ary;
0457: }

0473: rb_ary_push_m(int argc, VALUE *argv, VALUE ary)
0474: {
0475: while (argc--) {
0476: rb_ary_push(ary, *argv++);
0477: }
0478: return ary;
0479: }

つまり、Array.pushは内部でArray.<<を呼んでいる
両者は引数の取り方が違うだけで同じもの