>>782
サブルーチンaはもっとシンプルにできるでしょう。

それから、foreach keys 対 each 問題は、eachの反復呼び出しのoverheadと
keysが生成する配列のコストのコンペだったはず。
エントリ数がもっと少ない場合は、また違うんじゃないか?