Опечатка сотрудника при вызове subref подняла этот странный вопрос синтаксиса.Если я вызываю subref без стрелки разыменования, perl умирает с Not a GLOB reference
.Однако, если subref вызывается как метод для благословенного объекта, он работает нормально.
Какое это имеет отношение к шарам?И почему вызов метода работает?
use 5.12.0;
use Try::Tiny;
my $f = sub { 'sub ref' };
my $obj = bless({}, 'Blessed');
try {
say $f($obj); # should be $f->();
} catch {
say "ERROR: $_";
};
say $obj->$f();
Вывод:
C:\code>perl dispatch.pl
ERROR: Not a GLOB reference at dispatch.pl line 8.
sub ref