Gurusamy Sarathy writes: > for their hashes, but use Perl's internal hash table routines. This might > make sense if you have a custom data set on which Perl's algorithm performs > poorly (as it is known to on keys that are repeating sequences). This remark is a year (or two) too late. There are no known "natural" vulnerabilities of the current hashing code. Note "hash quality" below, and the fill-histograms on the ARRAY line. [Well, x 6 or x 26 give much worse results, but still not catastrophic.] Ilya monk:~/perl/perl5.5.640->./perl -Ilib -MDevel::Peek -e '$h{$_ x 8}++ for "a" .. "z"; Dump \%h' SV = RV(0x19d810) at 0x184834 REFCNT = 1 FLAGS = (TEMP,ROK) RV = 0x1a407c SV = PVHV(0x194438) at 0x1a407c REFCNT = 2 FLAGS = (SHAREKEYS) IV = 26 NV = 0 ARRAY = 0x184230 (0:15, 1:8, 2:9) hash quality = 107.1% KEYS = 26 FILL = 17 MAX = 31 RITER = -1 EITER = 0x0 Elt "qqqqqqqq" HASH = 0x55f22a80 SV = NV(0x194098) at 0x1a7798 REFCNT = 1 FLAGS = (NOK,pNOK) NV = 1 Elt "bbbbbbbb" HASH = 0xdb6302e0 SV = NV(0x194020) at 0x17f220 REFCNT = 1 FLAGS = (NOK,pNOK) NV = 1 Elt "yyyyyyyy" HASH = 0x31fa3fa2 SV = NV(0x1940d8) at 0x18481c REFCNT = 1 FLAGS = (NOK,pNOK) NV = 1Thread Previous