在UNIVERSAL中与ISA相比

Nat*_*enn 6 oop perl

我以前从未DOES在Perl程序中看到过,但它仍然存在于通用文档中.

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

你能给出一个例子,DOESISA返回不同的值吗?这两种方法有什么实际区别?

hob*_*bbs 4

当您使用角色时.UNIVERSAL::DOES行为相同UNIVERSAL::isa,但Moose,Mouse和Moo都提供DOES了对象类的方法,这些方法对于使用给定角色的类返回true.