在UNIVERSAL中与ISA相比

时间:2013-11-09 00:23:42

标签: perl oop

我之前从未在Perl程序中看到过DOES,但它仍然存在于docs上。

我完全不明白DOESISA之间的区别是什么。规范说明了角色,可能通过聚合,委派和模拟来实现。我在Perl中了解的唯一类关系是通过@ISA数组继承(或使用parentbase),我认为角色只能用于Moose等。文档还说大多数时间DOESISA都是一样的。

您能举例说明DOESISA返回不同的值吗?这两种方法有什么实际区别?

1 个答案:

答案 0 :(得分:5)

使用角色时。 UNIVERSAL::DOES的行为与UNIVERSAL::isa相同,但Moose,Mouse和Moo都在其对象类上提供DOES方法,对于使用给定角色的类返回true。