Как работает область видимости переменных в сеансе POE?

StackOverflow https://stackoverflow.com/questions/1064273

  •  21-08-2019
  •  | 
  •  

Вопрос

Может ли кто-нибудь объяснить, как работает область видимости переменных в сеансе POE?Как правильно передавать состояние внутри сеанса, не затрагивая другие сеансы?

Спасибо, Джош

Это было полезно?

Решение

POE не влияет на область видимости.

Вы можете использовать кучу POE (доступна через $_[HEAP]) для передачи данных между различными обработчиками.

Согласно документам, по умолчанию куча различается между сеансами, но это можно переопределить, чтобы разные сеансы использовали общую кучу.

sub my_state_handler {
    $_[HEAP]{some_data} = 'foo';
    $_[KERNEL]->yield('another_handler');
}

sub another_handler {
    print $_[HEAP]{some_data}, "\n"; # prints "foo\n"
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top