программистское, вкратце
Jun. 8th, 2004 10:58 pmСмешной баг. Примитивная хэш-функция берёт строку и в цикле умножает текущее значение хэша на 33 и прибавляет числовое значение следующего символа в строке. В конце берёт остаток от деления на кол-во слотов в таблице. Всё хорошо, но когда строка оказалась достаточно длинной, значение хэша вышло за пределы 2^32 и не вернулось к нулю, а было переведено слишком умным Perl'ом в тип с плавающей точкой. Который при попытке поделить его с остатком исправно давал 0.