跳转到内容

Moose 编程/语法

来自维基教科书,开放世界中的开放书籍

迄今为止,CPAN 文档的一个重大问题是,它们利用(滥用)了 Moose 是 Class::MOP 应用程序的事实。Class::MOP 是元对象协议构建框架 - 通常从这里开始就会变得难以理解。Class::MOP 和 Moose 之间存在非常模糊的界限,因为 Moose 是 Class::MOP 的唯一已知应用程序。

本质上,我们在 Class::MOP 中拥有的是一个允许 Moose 简洁且非 Perl 风格的技巧存档。Moose 提供了一些这些技巧,但没有多少糖衣,但通常会将它们糖衣到一个舒适的程度。

在这个 Moose 语法纲要中,我们承诺不再提及 Class::MOP[1]


维基教科书开发阶段
稀疏文本 0% 正在开发的文本 25% 成熟的文本 50% 已开发的文本 75% 综合文本 100%

使用 use Moose; 导出的关键字

  1. has 75% 开发完成
  2. before, after, around 75% 开发完成
  3. blessed
  4. override 0% 开发完成
  5. augment
  6. extends 75% 开发完成
  7. with
  8. meta
  9. 其他函数 - 非污染完全限定语法 25% 开发完成


使用 'no Moose'

[编辑 | 编辑源代码]
15:32 <@konobi> less shit to track during runtime
15:33 <@Sartak> EvanCarroll: my $person = Person->new; $person->has("jewelry")
15:33 <@konobi> just _having_ stuff in your namespace will slow the interpreter down
15:33 <@Sartak> if you keep Moose's functions in Person's namespace, that will have weird results
15:33 <@Sartak> if you no Moose, then it's the usual "undefined function" error

^ Class::MOP,最后一次,我发誓。

华夏公益教科书