in reply to Benchmarking chop/substr/split

If efficiency is your primary concern, then use an array instead of a hash:
$letters[ord chop]++ while $_;
I also intentionally left out the lc function. Frequency counts can be consolidated at the end of the loop, instead of performing an lc upon every iteration. Save yourself the O(n) step, and get more detailed frequency information while you're at it.
   MeowChow                                   
               s aamecha.s a..a\u$&owag.print