Как работает область видимости переменных в сеансе POE?
-
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"
}
Не связан с StackOverflow