From: Robert Klemme Date: 2003-06-24T17:04:10+09:00 Subject: Re: Block Scope Statement in the Pickaxe "Joel VanderWerf" schrieb im Newsbeitrag news:3EF7E177.4060808@path.berkeley.edu... > I think this is just the distinction between #instance_eval and calling > a block directly. With instance_eval, the binding of self in the block > is changed to the receiver of instance_eval. Hope this example says it > better: Thanks! That cleared the fog from my eyes. I thought the *eval family of methods would only work on strings. I came up with this condensed example: class Foo def foo; yield; end def bar(&b); instance_eval(&b); end end f = Foo.new f.foo {p self} # -> main (in IRC) f.bar {p self} # ->