Hash#eachなどのブロック内で自分自身の値を変更するようなイテレータはありませんか?

見つからないので今のところ
temp = {}
hash.each{|k,v| temp.store(k,do_hoge(v)}
hash = temp

と代用しているのですが、なぜだか涙が止まりません。