Perlで2つの配列の両方に含まれる要素を、foreachを使わずに抜き出す方法は?
http://d.hatena.ne.jp/koseki/20031015#1066180360
foreachを使わないっていうのが何を意味しているのかいまいち不明だが、速度を気にするならハッシュを使って
foreach (@a) { $h{$_}|=1 } foreach (@b) { $h{$_}|=2 } grep { $h{$_}==3 } keys %h;
とすれば、実行時間O(n+m)で済むんじゃないかな。