中の人です。
eval用として突っ込まれている文字列を
lambdaのようにreturnを書かせろという用途で・・・。
本来、evalなのにreturnを書いてしまった!もう手遅れ!
なんとかして!Procのnextみたいなこと出来ないのか!
普通、returnはできない。
code = "puts 'before';return false;puts 'after'"
eval code
#→LocalJumpError
def test
code = "puts 'before';return false;puts 'after'"
#eval code #return しているのでtestを抜けてしまう。
lmd = lambda {eval code}
lmd.call
puts 'important Process'
end
test
eval恐いよ。
0 件のコメント:
コメントを投稿