1
以下是我的實際代碼的簡化示例:武:添加屬性到另一個(非流動)封裝
#!/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.
請幫助我如何從另一個包中定義的方法添加屬性到包。
我應該改用穆斯嗎?