UNIVERSAL::DOESについてのメモ
Perlのオブジェクトに $object->DOES('SomeRole')
みたいな、ロールを消費したかどうかを判定できる(?)メソッドがあるのですが、それについていろいろ知見を得たのでまとめます。
- Perl自体にロールを消費したかどうかを判定する機能はない
- そもそもあまり使われていない
UNIVERSAL::can
で判定したほうが確実 (変なDOES
の実装だときちんと判定してくれない場合もありうるので・・・)- 大半のrole判定がほしい実装はMooseを使うのがベストプラクティスになってしまってそういう場面でのDOESの出番が無かった
これらに関してはid:karupanerura氏にいろいろ教えていただきました。
ありがとうございました。