あああああ、>>782 において、所要時間 a > c という結論は撤回します。人´Д`;)スマネ
>>785, >>786 の指摘通り、比較条件の設定がずさんでした_| ̄|○

a のループ内を { $val = $hash{$_}; foo($_); foo($val); } にして、
かつページングやスワッピングがない(もしくは無視し得る)ことをシステム時間が微小であることで確認し、
かつハッシュ要素数 40 x 反復 100000 回のケースも準備して
a, b, c の順序を変えつつ複数回計測実施してみますたら別な結論に(汗


[N=10, ハッシュ要素数 400000]
項番. a_usr  a_sys  b_usr  b_sys  c_usr  c_sys
   (a->b->c 順、3 回捨て)
04.  14.88 0.05 12.89 0.00 19.12 0.00
05.  15.11 0.00 13.02 0.00 17.16 0.00
06.  14.95 0.00 12.84 0.00 16.66 0.03
   (c->b->a 順、3 回捨て)
10.  14.80 0.00 12.91 0.00 16.80 0.02
11.  14.88 0.00 13.05 0.00 17.02 0.03
12.  14.67 0.00 12.80 0.00 16.72 0.08

結果: 所要時間 c > a > b と結論。
a_usr = 14.88±0.05 秒
b_usr = 12.92±0.04 秒
c_usr = 17.25±0.35 秒
a_sys, b_sys, c_sys とも無視し得る。(最大 0.08 秒)