POE::Session->create( inline_states => { _start => \&create_httpd, _stop => \&stop_httpd, }, args => [8080], ); $poe_kernel->run; sub create_httpd { my ($kernel, $heap, $Port) = @_[KERNEL, HEAP, ARG0]; $kernel->alias_set('httpd_parent'); my $httpd = POE::Component::Server::HTTP->new ( Port => $Port, ContentHandler => { '/' => \&MainHandler }, Headers => {Server => 'any server' }, ); $heap->{httpd} = $httpd; } sub stop_httpd { my ($kernel, $heap) = @_[KERNEL, HEAP]; $kernel->call($heap->{httpd}, 'shutdown'); } sub MainHandler { my ($request, $response) = @_; $response->code(RC_OK); $response->content("Hi, you fetched ". $request->uri); return RC_OK; } # MainHandler