В Perl 5.16+ вы можете использовать функцию current_sub :
use strict;
use warnings;
use feature 'current_sub';
sub pv($) {
...
__SUB__->($_)
...
}
Это более полезно при использовании анонимных подпрограмм, поэтому вы не создаете цикл памяти (поскольку он закрывает ссылку на себя, это не происходит с именованными подпрограммами, поскольку он просто ищет символ).
Кроме того, рассмотрите возможность не использовать прототип.Весьма вероятно, что вам это не нужно, если вы не знаете, зачем вам это нужно;прототипы предназначены для парсера, а не для вызывающего.Без прототипа достаточно вызвать его в круглых скобках, чтобы задержать поиск символа.