次のように、f { ... } と f() { ... } で、caller から得られる行番号が異
なるのですが、これは意図されているのでしょうか。

% ruby -ve '
s1 = "f {\n}"
s2 = "f() {\n}"
def f(&block)
  p caller[0]
end
eval(s1)
eval(s2)'
ruby 1.9.0 (2004-01-12) [i686-linux]
"(eval):2"
"(eval):1"
-- 
[田中 哲][たなか あきら][Tanaka Akira]