我一直在玩Moose,感受它.我想要一个像C语言中的纯虚
函数的例子,但是用Moose的说法(特别是以C -looking的方式).我知道即使Moose强加了比普通Perl更严格的模型,仍然有不止一种
方法可以做我想问的
方法(通过
方法修饰符或SUPER ::
调用).这就是为什么我要尽可能专门针对类似C的实现.至于“为什么?”这个限制?主要是好奇心,但也计划将一些C
代码移植到Perl和Moose中,这种方式可以让人们最常认同.
我可以想到这种方式使用角色而不是子类化:
{
package AbstractRole;
use Moose::Role;
requires 'stuff';
}
{
package Real;
use Moose;
with 'AbstractRole';
}
这将产生编译错误,因为Real没有定义任何东西.
向Real添加stuff方法现在可以使它工作:
{
package Real;
use Moose;
with 'AbstractRole';
sub stuff { print "Using child function!\n" }
}