Perl 6:从里面获取函数的名称

Har*_*rry 7 function introspection perl6

在Perl 6中,如何在运行时从其体内获取函数/子例程的名称?

例如,

sub foo {
    say "My name is: " ~  <WHAT-API-HERE??> ;
}
...
foo();
Run Code Online (Sandbox Code Playgroud)

上面的代码应该打印:

My name is: foo
Run Code Online (Sandbox Code Playgroud)

我查看了MOP,FAQFunctions等地方.

rai*_*iph 8

sub foo { say &?ROUTINE.name }
foo
Run Code Online (Sandbox Code Playgroud)

显示:

foo
Run Code Online (Sandbox Code Playgroud)

请参阅&$ROUTINE文档.

  • @Harry yw.Imo你的搜索选择(MOP,常见问题解答等)是完全合理的,但你不可能知道在变量的页面上查看答案.更一般地说,文档比它更好,但仍有很长的路要走.另请注意,在撰写此评论时,到目前为止,相对快速地获取有关Perl 6的问题的答案的最佳位置不是SO,而是Perl 6的各种友好IRC频道,最值得注意的是[Freenode#perl6]( https://kiwiirc.com/client/irc.freenode.net/perl6). (6认同)
  • @Harry在提问时总是至少提到你的研究工作.我刚刚将您的评论编辑到您的问题中,以帮助您以前的研究工作更加明显.我猜你没有意识到你以前的研究工作可能就是为什么有人(不是我)对你投降.无论如何,希望这是有帮助的!我很高兴你问这个问题,很高兴raiph分享了答案. (4认同)