任何人都可以解释变量范围如何在POE会话中起作用吗?在不影响其他会话的情况下,在会话中传递状态的正确方法是什么?
由于 约什
答案 0 :(得分:4)
范围界定不受POE的影响。
您可以使用POE的堆(可通过$_[HEAP]
访问)在各种处理程序之间传递数据。
According to the docs,默认情况下,会话之间的堆是不同的,但是可以覆盖它,以便不同的会话共享堆。
sub my_state_handler {
$_[HEAP]{some_data} = 'foo';
$_[KERNEL]->yield('another_handler');
}
sub another_handler {
print $_[HEAP]{some_data}, "\n"; # prints "foo\n"
}