Прежде всего, комментарии к стилю полезны и правильны, и помогут. Однако, если вам нужно обработать 1,5 ГБ XML, вам нужно немного лучше управлять памятью.
XML::DOM
не освобождает автоматически используемое пространство. Это признак его возраста, и новые модули намного лучше управляют памятью, и, как правило, делают это автоматически (я также использую XML::LibXML
, что делает это, и я также очень рекомендую это).
В основном, вам нужно вызвать метод dispose
, чтобы очистить дерево DOM, когда вы закончите с ним. Это довольно ясно в кратком обзоре под XML::DOM
. Достаточно просто позвонить, чтобы решить проблемы с памятью. (Технически, деревья DOM, как правило, содержат циклические ссылки, и они не управляются автоматически при простом обращении с подсчетом сбора мусора. Perl использовал слабые ссылки, чтобы помочь, но похоже, что он не был полностью интегрирован в XML::DOM
. Просто отсылка к ссылке дерева не достаточно.)
Я бы определенно хотел улучшить стиль в другом месте. Некоторые другие проблемы стиля; Я бы попытался Try::Tiny
обработать eval {}
, поскольку вы, кажется, используете его главным образом для обработки исключений. Кроме того, несколько неудачных примеров научили меня тому, что использование надежного парсера даты / времени - это всегда хорошая идея. Я использую те в DateTime::Format::*
. Есть много странных случаев при разборе даты и времени, и это сэкономит вам строки кода и сделает обработку более надежной.