Gavin Kistner wrote:
> This line:
> p foo { ... }
> is interpreted as
> p( foo{ ... } )
> 
> While this line:
> p foo do ... end
> is interpreted as
> p(foo) do ... end
> 
> The lower precedence of do/end is causing it to be bound to the result
> of p( foo ), or in your case p( array.sort )

Really interesting.  I never realized that do/end had lower precedence 
than {}.  Thanks for the help everyone!
-- 
Posted via http://www.ruby-forum.com/.