Я думаю, что я столкнулся с ошибкой в Params::Validate, но я не уверен, правильно ли я определил фрагмент проблемного кода, Код, о котором идет речь, не смог пройти исключения по цепочке (используя Try::Tiny), поэтому я начал отлаживать и обнаружил, что класс, используемый внутри блок try имеет деструктор. Этот деструктор вызывает методы объекта, которые используют Params::Validate и просматривают Validate.pm источник Я вижу локальную eval без [email protected], т.е. глобальный [email protected] будет перезаписан.
Теперь я вижу два варианта:
-
Params::Validateдолжен всегда локализовать[email protected]и, следовательно, это ошибка, о которой следует сообщить. - Ошибка находится в соответствующем классе, потому что он не должен использовать
Params::Validateв деструкторе.Params::Validateможет оставаться таким, как сейчас.
Какая из них? Как я должен справиться с этой ситуацией?
PS: Я думаю, что модули CPAN должны быть прочными и не сломать себя и свою среду, поэтому заголовок вопроса.