On 6/27/06, Eric Hodel <drbrain / segment7.net> wrote:
> Should this me mentioned?
>
> $ ruby -ve "'cat \'o 9 tails' =~ '\d'"
> ruby 1.8.5 (2006-06-27) [powerpc-darwin8.6.0]
> -e:1:in `=~': type mismatch: String given (TypeError)
>          from -e:1

To head of those that might ask (since I was about to before sitting
down and thinking it through):

The exception is raised specifically for Strings while other non-Regex
types just get order reversed because we're avoiding infinite
recursion. ie. replacing this call:

  "cat 'o 9 tails" =~ '\d'

with this call

  '\d' =~ "cat 'o 9 tails"

doesn't help, since that second call would just be changed again back
to the first, and we would cycle ad infinitum. (It wouldn't make much
sense semantically, either).

By the way, but Eric's suggestion here and the original patch from
Alex apply to the 1.8.4 branch as well as 1.8.5:

  $ ruby -ve "'cat \'o 9 tails' =~ '\d'"
  ruby 1.8.4 (2005-12-24) [i386-linux]
  -e:1:in `=~': type mismatch: String given (TypeError)
          from -e:1

Jacob Fugal