1

POE セッション内で変数のスコープがどのように機能するかを説明できる人はいますか? 他のセッションに影響を与えることなく、セッション内で状態を渡す適切な方法は何ですか?

ありがとうジョシュ

4

1 に答える 1

4

スコーピングは POE の影響を受けません。

POE のヒープ ( からアクセス可能$_[HEAP]) を使用して、さまざまなハンドラー間でデータを渡すことができます。

docs によると、ヒープはデフォルトでセッション間で区別されますが、これをオーバーライドして、異なるセッションがヒープを共有するようにすることができます。

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

sub another_handler {
    print $_[HEAP]{some_data}, "\n"; # prints "foo\n"
}
于 2009-07-01T14:49:07.763 に答える