Perl5およびMooseでは、線形isaまたはlinearized 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‽
'doesnの.WHAT'何か、それはあなたに型オブジェクトを与えます。 '::'を持たないタイプの場合、 '.gist'は途中で賢明なものになります。あなたは本当に '。^ name'を呼ぶべきです。 –