3
可能重复:
In Perl, how can a subroutine get a coderef that points to itself?如何从函数中获取对函数的引用?
有没有办法从那个函数内得到一个函数的引用不使用名称?
我最近发现自己反复编写了一种反模式气味的代码。 Data::Dump支持过滤器,但(从版本1.16开始)它们不是递归应用。要解决,我已经写了这样的事情:
sub filter {
my ($context, $node) = @_;
# ...
return { dump => dumpf($something, \&filter) };
}
这工作,但\&filter
引用开始来烦我。如果函数被重命名或作为新过滤器的模板复制到别处,则会产生维护开销。我想用__SUB__
(如果Perl有这样的东西)替换它。
重复的:http://stackoverflow.com/questions/2554214/in-perl-how-can-a-subroutine-get-a-coderef-that-points-to-it-自己?? – runrig 2010-06-22 15:49:20
@runrig:非常好。我可以发誓在那里有一个类似的问题,但找不到它。 – 2010-06-22 17:08:05