injectのブロックって do 〜 end で指定できないの?

>ruby -ve "p [1,2,3].inject({}){|h,k| h[k] = k; h}"
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
{1=>1, 2=>2, 3=>3}

>ruby -ve "p [1,2,3].inject({}) do |h,k| h[k] = k; h end"
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
-e:1:in `inject': no block given (LocalJumpError)
from -e:1:in `each'
from -e:1:in `inject'
from -e:1