相关疑难解决方法(0)

我怎样才能在Perl中修补实例方法?

我正在试图修补(duck-punch :-)一个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;
Run Code Online (Sandbox Code Playgroud)

这不是正确的语法 - 它产生:

无法在[module] line [lineno]修改非左值子程序调用.

我记得(来自Programming Perl),调度查找是基于受祝福的包动态执行的(ref($agent)我相信),所以我不确定实例猴子修补如何在不影响受祝福的包的情况下工作.

我知道我可以继承它UserAgent,但我更喜欢更简洁的猴子修补方法.同意成年人和你有什么.;-)

perl monkeypatching

22
推荐指数
4
解决办法
5345
查看次数

标签 统计

monkeypatching ×1

perl ×1