Ruby/Perl grep

PerlにおけるgrepRubyにおけるEnumerable#grepは、パターンマッチングにHitしなかったときの挙動が、それぞれ異なる。

Ruby:Enumerable#grep -> anArray
nilを返さない(Hitしなかった場合、空のオブジェクトを返す)

irb(main):002:0> s=["Hello"]
=> ["Hello"]
irb(main):003:0> s.grep(/H/)
=> ["Hello"]
irb(main):004:0> s.grep(/W/)
=> []

Perlgrep関数
Hitしなかった場合nilを返す

$ perl -e ' @s=("Hello");print "nil" if grep(/W/,@s) == nil ;'
nil
$ perl -e ' @s=("Hello");print "nil" if grep(/H/,@s) == nil ;'

Rubyでは部分文字列マッチングの際は、String#include?という素直なメソッドがあるのでこれを使おう。