Я написал несколько довольно обширных модулей и сценариев Perl, используя привязки Perl SVN :: Client и т. Д. Поскольку все вызовы SVN :: Client глубоко в модуле, я переопределил значение по умолчанию обработка ошибок.
Пока что я сделал это, установив
$SVN::Error::handler = undef;
, как описано в документации , но это делает отдельные вызовы немного беспорядочными, потому что вы должны помнить, чтобы каждый вызов SVN::Client
выполнялся в контексте списка и проверял первое значение на наличие ошибок.
Я хотел бы перейти на использование обработчика ошибок, который я написал бы; но $SVN::Error::handler
является глобальным, поэтому я не вижу, чтобы мой обратный вызов мог определить, откуда возникла ошибка и в каком объекте установить код ошибки.
Мне было интересно, могу ли я использовать пул для этой цели: до сих пор я игнорировал пулы как не относящиеся к работе в Perl, но если я вызову SVN::Client
метод с созданным мною пулом, будет ли SVN :: Ошибка объект будет создан в том же пуле?
Кто-нибудь имеет какие-либо знания или опыт, которые имеют отношение к этому?