Я пытаюсь обезглавить (duck-punch:-) a LWP::UserAgent
экземпляр, например:
sub _user_agent_get_basic_credentials_patch {
return ($username, $password);
}
my $agent = LWP::UserAgent->new();
$agent->get_basic_credentials = _user_agent_get_basic_credentials_patch;
Это не правильный синтаксис - он дает:
Невозможно изменить функцию non-lvalue вызовите на [module] line [lineno].
Как я помню (из программирования Perl), диспетчерский поиск выполняется динамически на основе благословенного пакета (ref($agent)
, я считаю), поэтому я не уверен, как патч для установки обезьян будет работать даже без влияния на благословенный пакет.
Я знаю, что я могу подклассифицировать UserAgent
, но я бы предпочел более сжатый подход, дополненный обезьянами. Согласие взрослых и что у вас есть.; -)