变量范围如何在POE会话中起作用?

时间:2009-06-30 15:18:31

标签: perl session-state scope poe

任何人都可以解释变量范围如何在POE会话中起作用吗?在不影响其他会话的情况下,在会话中传递状态的正确方法是什么?

由于 约什

1 个答案:

答案 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"
}