eval がよくわからない

% cat eval1.rb ; ruby -v eval1.rb
a = 1
eval('a = 2')
p(a.inspect)
ruby 1.8.4 (2005-10-29) [i486-linux]
"2"
% cat eval2.rb ; ruby -v eval2.rb
eval('a = 2')
p(a.inspect)
ruby 1.8.4 (2005-10-29) [i486-linux]
eval2.rb:2: undefined local variable or method `a' for main:Object (NameError)

何故なんだ?とおもったけど http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3%3A%3Aeval にちゃんと書いてあったよ。