【发布时间】:2017-02-10 05:07:42
【问题描述】:
以下是我真实代码的简化示例:
#!/usr/bin/perl
package X;
use Moo;
sub add_attr_for_another_package {
my ($package) = @_;
eval "package $package";
has 'q' => (is=>'rw', default=>123);
}
package Y;
use Moo;
X::add_attr_for_another_package('Y');
my $obj = Y->new;
print $obj->q, "\n";
我尝试从包X 中定义的函数向包Y 添加一个属性。这不起作用:
$ ./test.pl
Can't locate object method "q" via package "Y" at ./test.pl line 18.
请帮助我如何从另一个包中定义的方法将属性添加到包中。
我应该改用 Moose 吗?
【问题讨论】:
标签: perl attributes moose moo