Можно создать дубликат:
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-itself ?? – runrig
@runrig: Отлично. Я мог бы поклясться, что здесь есть аналогичный вопрос, но он не мог его найти. –