Perlのhashって相当使ってるけど、中身知らないなー、とふと思い、調べてみたら、こんなページがあった。 http://www.perl.com/lpt/a/679 2002年に書かれたもので、ちょっと古いけれど、読んでいったら、詳しく知りたかったらとりあえずPerl 1.0のhash.cから始めたらいいんじゃないかみたいなことから書いてあって、なるほどと思って読んでみた。短い。 与えられたキーからデータの入っている場所を探すハッシュ関数としては、以下みたいなループ。 for (s=key,i=0,hash = 0; /* while */ *s; s++,i++,hash *= 5) { hash += *s * coeff[i]; } oentry = &(tb->tbl_array[hash & tb->tbl_max]); こんな感じで、キーの文字1文字ずつを使ってcoeffとい