在Perl5和Moose中,線性isa或線性化isa有助於理解類層次結構。如何顯示值的類型層次結構?
WHAT顯示具體類型的值的方法:
> 42.WHAT
(Int)
我如何顯示類似
> 42.hypothetical-type-hierarchy
(Int) ┬ is (Cool) ─ is (Any) ─ is (Mu)
└ does (Real) ─ does (Numeric)
...可能進一步線每消耗的作用?
編輯:例如與角色
class Beta {}
role Delta {}
role Gamma does Delta {}
role Eta {}
role Zeta does Eta {}
role Epsilon does Zeta {}
class Alpha is Beta does Gamma does Epsilon {}
# (Alpha) ┬ is (Beta)
# ├ does (Gamma) ─ does (Delta)
# └ does (Epsilon) ─ does (Zeta) ─ does (Eta)
my $ai = Alpha.new
$ai.^mro # ((Alpha) (Beta) (Any) (Mu))
$ai.^roles # ((Epsilon) (Zeta) (Eta) (Gamma) (Delta))
# flat list, not two-element list of a tuple and triple‽
'.WHAT'沒有按顯示任何東西,它給你的類型對象。對於那些在'.gist'中沒有任何'::'的類型來說,它們變成了一些明智的選擇。你應該真的調用'。^ name'。 –