From: "Mehr, Assaph (Assaph)" Date: 2004-09-20T13:24:55+09:00 Subject: Re: Nuby question about symbols > Why? Speed? I imagine that, in both cases, a string could have been > used as well. A string, though, would let you craft an invalid method > name. That's evil, but apparently legal: irb(main):005:0> $sm = "invalid name".to_sym => :"invalid name" irb(main):011:0> class Foo; end => nil irb(main):013:0> Foo.send :define_method, $sm, proc{"a ha!"} => # irb(main):016:0> Foo.instance_methods.sort - Class.methods => ["invalid name"] irb(main):017:0> Foo.new."invalid name" SyntaxError: compile error (irb):17: syntax error Foo.new."invalid name" ^ from (irb):17 from :0 irb(main):018:0> Foo.new.send "invalid name" => "a ha!"