Всем привет, немного оффтопик, так как код корректно работает под онтопиком (Debian testing x86_64, perl 5.14.2), но фейлится под NetBSD amd64 (тоже perl 5.14.2), OpenBSD amd64 (perl 5.12.2), FreeBSD amd64 (perl 5.12.4).
У меня пока идей нету, в исходники модуля DB_File ещё не зарывался.
Ситуация воспроизводится с помощью двух семплов:
writedb создаёт базу на диске из двух записей, связывая её с перловым массивом.
после закрытия readdb.pl её открывает, но считает, что там не 2 записи, а 4. Похоже на то, что оно считает, что база связана не с массивом, а с хешем (хеш в перле представляется как массив, где каждое первое число - ключ, каждое второе - значение). То есть элементы по индексу 0 и 2 - значения, записанные в базу, а 1 и 3 - это undef.
Повторюсь, на линуксе всё нормально.
Создал ещё аналогичное обсуждение на perlmonks и отписал автору модуля, но он пока не отвечает.
Собственно вопрос: что я делаю не так? Или я всё делаю так, но это бага в BSD реализации?
Если у кого-то есть идеи, отпишитесь.
Спасибо.