Вы можете использовать базу данных tz
"База данных часовых поясов общего пользования содержит код и данные, которые представляют историю местного времени для многих репрезентативных местоположений по всему миру. Она периодически обновляется, чтобы отражать изменения, внесенные политическими органами в границы часовых поясов, смещения UTC и правила перехода на летнее время. "
Для него есть даже модуль perl.
"DateTime :: TimeZone содержит скрипт parse_olson, который компилирует источник tz в модули Perl. Он является частью проекта Perl DateTime, который свободно доступен как в рамках лицензии GPL, так и в Perl Artistic License. DateTime :: TimeZone также содержит скрипт tests_from_zdump, который генерирует тестовые случаи для каждого тактового перехода в базе данных tz. "
Как вы сказали, вы уже используете этот модуль, но похоже, что вы не используете все его функции. Я не уверен, какая часть кода tz предоставляется через модуль DateTime :: TimeZone. В этом случае вам может быть лучше назвать это. Существует ряд веб-сервисов, уже использующих базу данных tz, поэтому она хорошо используется.
Вы, вероятно, должны написать скрипт на perl или shell для загрузки источника базы данных tz
периодически, чтобы поддерживать правила в актуальном состоянии.