用于OOP的Moose与Perl的类似C语言的使用

前端之家收集整理的这篇文章主要介绍了用于OOP的Moose与Perl的类似C语言的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@
我一直在玩Moose,感受它.我想要一个像C语言中的纯虚函数的例子,但是用Moose的说法(特别是以C -looking的方式).我知道即使Moose强加了比普通Perl更严格的模型,仍然有不止一种方法可以做我想问的方法(通过方法修饰符或SUPER ::调用).这就是为什么我要尽可能专门针对类似C的实现.至于“为什么?”这个限制?主要是好奇心,但也计划将一些C代码移植到Perl和Moose中,这种方式可以让人们最常认同.

解决方法

我可以想到这种方式使用角色而不是子类化:
  1. {
  2. package AbstractRole;
  3. use Moose::Role;
  4. requires 'stuff';
  5. }
  6.  
  7. {
  8. package Real;
  9. use Moose;
  10. with 'AbstractRole';
  11. }

这将产生编译错误,因为Real没有定义任何东西.

向Real添加stuff方法现在可以使它工作:

  1. {
  2. package Real;
  3. use Moose;
  4. with 'AbstractRole';
  5.  
  6. sub stuff { print "Using child function!\n" }
  7. }

猜你在找的Perl相关文章