Я использую Apache2 :: Cookie (то есть Apache2 с mod_perl) для анализа файлов cookie.
my %cookies = Apache2::Cookie->fetch;
do_something($cookies{"cookie1"});
Этот код работает в течение многих лет без каких-либо проблем. Я только что узнал, что cookie с определенным форматированием вызывает исключение Expected token not present
. Данный файл cookie генерируется клиентским JavaScript:
document.cookie = "val=a,b"
Apache2 :: Кажется, что cookie не похожа на запятую.
Я могу уловить эту ошибку с помощью eval
, но поиск файлов cookie выполняется во многих местах кода (да, это могло быть разложено, но, честно говоря, код настолько прост, что в этом не было необходимости). В любом случае, это уже там, и Я должен отследить и поймать исключение для этого cookie, которое я не установил и мне не нужно.
Есть ли более простой способ избавиться от этого исключения, чем рефакторинг десятков вызовов на Apache2::Cookie->fetch
? Либо путем переопределения Apache2::Cookie::fetch
, либо путем установки глобального флага для libapreq
, чтобы не рвать об этом (я ничего не смогу найти) или о какой-то другой яркой идее, которую мне не хватает.