我可以在一个对象上调用^方法并列出我可以调用的方法名称:
my $object = 'Camelia'; my @object_methods = $object.^methods; @object_methods.map( { .gist } ).sort.join("\n").say;
^methods
返回一个我存储在@object_methods中的列表,然后我通过在每个上面调用gist
来转换方法thingys的列表,以获得该方法的人类感知形式.
但是,^ in ^方法是隐含的.HOW,如object documentation末尾所示,这也应该有效:
my $object = 'Camelia'; my @object_methods = $object.HOW.methods;
但是,我收到一个错误:
Too few positionals passed; expected 2 arguments but got 1 in any methods at gen/moar/m-Metamodel.nqp line 490 in block <unit> at...
并且,对于它的价值而言,这对于一种试图对这类事物是个人友好的语言来说是一个可怕的错误信息.文件m-Metamodel.nqp不是我的perl6安装的一部分.它甚至不是我可以google的东西,因为正如路径所暗示的那样,它是汇编产生的东西.而且,编译取决于版本.