I could be wrong, but I think you are registering to receive the PoCo::IRC's events from within the PoCo::Server::TCP session. It boils down to whether the client_input state is attached to the PoCo::Server::TCP session or to your session. The PoCo::IRC component could be sending events to the wrong one.

Update: I believe my post is correct. I have modified massacred your code to see which session is being called:

use POE qw(Component::Server::TCP Component::IRC); POE::Component::Server::TCP->new( Port => '9999', Address => '0.0.0.0', ClientInput => \&client_input, ); POE::Session->create( package_states => [ main => [qw(_start)], ], ); $poe_kernel->run(); sub _start { print "My session has id: ", $_[SESSION]->ID(), "\n"; } sub client_input { print "Starting bot in session: ", $_[SESSION]->ID(), "\n"; }

And it outputs the following:

My session has id: 3
Starting bot in session: 4

So it looks like client_input is being called on a different session than the one you need to register with POE::Component::IRC. I would probably solve this by creating a new state in your session that handles the PoCo::IRC instantiation and registration stuff. Something like this:

use POE qw(Component::Server::TCP Component::IRC); POE::Component::Server::TCP->new( Port => '9999', Address => '0.0.0.0', ClientInput => \&client_input, ); POE::Session->create( package_states => [ main => [qw(_start create_bot)], ], ); $poe_kernel->run(); sub create_bot { print "Starting bot in session: ", $_[SESSION]->ID(), "\n"; } sub _start { print "My session has id: ", $_[SESSION]->ID(), "\n"; $_[KERNEL]->alias_set("mine"); } sub client_input { $_[KERNEL]->post(mine => 'create_bot'); }

In reply to Re: Adding sessions on-the-fly to POE program by revdiablo
in thread Adding sessions on-the-fly to POE program by japhy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.