在 Moose 中,我如何判断一个对象的类是否是另一个对象类的子类?
假设我有两个对象 $obj1
和 $obj2
,它们都是 Moose 类的实例。我想找出以下哪一项适用:
-
$obj1
的类与$obj2
的类相同; -
$obj1
的类是$obj2
的子类; -
$obj1
的类是$obj2
的超类; - 两个对象的类都不是另一个对象的子类。
我该怎么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
$obj1
的类与$obj2
的类相同吗?$obj1
的类是$obj2
的子类吗?$obj1
的类是$obj2
的超类吗?两个对象的类都不是另一个对象的子类。
参见上文。
更新:
响应有关运行时应用的角色的评论:
输出:
Is
$obj1
's class the same as$obj2
's?Is
$obj1
's class a subclass of$obj2
's?Is
$obj1
's class a superclass of$obj2
's?Neither object's class is a subclass of the other's.
See above.
Update:
In response to comments regarding roles applied at run time:
Output:
使用
Class::MOP
基础Moose
您可以内省所有这些信息。例如:
另请参阅此问题/答案 如何在 Perl 中找到继承自某个包的所有包?
/I3az/
Using the
Class::MOP
underpinnings inMoose
you can introspect all this information.For eg:
Also see this SO question/answer How can I find all the packages that inherit from a package in Perl?
/I3az/