式展開のタイミング
def foo bar=1 binding endeval "pp bar",foo =># 1ってやると、ちゃんと動いてくれるのだが
eval "pp #{bar}",fooってやると、
undefined local variable or method `foo' for main:Object (NameError)
式展開のタイミングの問題。「eval "pp #{bar}",foo」は「現時点の」barを評価しようとしているため。「pp "#{eval 'bar', foo}"」とすればよい。もちろん「pp(eval 'bar', foo)」でもok。