1

我有具有以下构造函数的 A 类:

sub new {
    my ($class, %args) = @_;

    return bless(\%args, $class);
}

我有另一个类 LWP::UserAgent,我想在我的 A 类中使用它。我可以通过这样做来解决问题:

ua = LWP::UserAgent->new;

sub new {
    my ($class, %args) = @_;

    return bless(\%args, $class);
}

但在这种情况下,我将有 1 个 UserAgent 对象,但我希望我的 A 类的每个实例都有一个唯一的对象。

4

1 回答 1

3

然后您需要将该对象构造为属性

use LWP::UserAgent;

sub new {
    my ($class, %args) = @_;

    return bless { %args, lwp => LWP::UserAgent->new }, $class;
}

现在 A 类的每个对象都将拥有lwp自己的LWP::UserAgent对象的属性。

我当然希望实际上这是通过所有必要的错误检查很好地写出来的。


而且我想更好地调用 User-Agent 的属性ua(而不是lwp上面的)。

于 2019-04-23T04:23:21.760 回答