2015-11-30 5 views
2

Я использую модуль, который принимает обратные вызовы (AnyEvent :: Socket). Я пытаюсь передать класс подпрограмму в качестве обратного вызова, но ничего не работает пример:Передача подпрограммы класса в качестве обратного вызова

tcp_server undef, $self->port,\$self->handle_connection 

Это просто не работает, это жалобы о неопределенных переменных. если я передать функции в качестве анонимной подпрограммы работает

+0

\ & $ self-> handle_connection, возможно? – xxfelixxx

ответ

5

Вы можете пройти анонимную функцию, которая вызывает метод объекта,

sub{ $self->handle_connection } 
1

Модуль curry был построен для такого рода вещи

use curry; 

tcp_server undef, $self->port, $self->curry::handle_connection