Напоролся на неприятную ошибку в модуле Time::Local (по-моему даже в кукбуке описан) – похоже, что номер месяца подставлялся в индкес элемента массива напрямую, вопреки тому, что нумерация начинается с нулевого элемента и вместо января выдавалось количество дне для февраля и т.д. Соответственно какие-то месяца обрабатывались корректно, а какие-то – вызывали ошибку вида Day ’31’ out of range 1..30, которую в силу редкости трудно было обнаружить.
А ведь что мешало автору проcтейшим образом сгенерировать тестовый календарь и прогнать на нём модуль? Ладно бы – “для себя” делал, так модуль на CPAN лежит, в литературе упомянут – и такие детские баги. Причём сообщение об ошибке на форуме CPAN было еще для версии 1.13, к версии 1.20 ничего не изменилось – так же перебирает с первого элемента…