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