Мне было любопытно, что грамматики являются классами или синглетонами, поэтому я создал эту небольшую программу, чтобы выяснить:
grammar Mini {
token TOP { \* <word> \* }
token word { \w+ }
}
proto sub is-class( | ) { * };
multi sub is-class( Grammar:D $g ) { return "Object" };
multi sub is-class( Grammar:U $g ) { return "Class" };
say is-class( Mini );
Это использует множественную диспетчеризацию, чтобы выяснить это, и получаетсячто Mini
на самом деле класс.Вообще, был бы более короткий способ узнать это?Или способ, при котором не требуется знать фактический класс, экземпляром которого может быть пакет?