use strict; use Data::Dumper; #sub POE::Kernel::TRACE_DEFAULT () { 1 } #sub POE::Kernel::ASSERT_DEFAULT () { 1 } #sub POE::Kernel::TRACE_DEFAULT () { 1 } BEGIN { require 'HTTP.pm'; POE::Component::Server::HTTP->import(); } #use HTTP::Status; use POE; #use Carp qw(confess); #$SIG{INT} = sub { confess }; POE::Component::Server::HTTP->new( Port => 8000, ContentHandler => { '/' => \&callback, '/arthur/' => \&artur, }, #TransHandler => [\&uri], #PostHandler => { # '/' => [\&post], #}, #StreamHandler => \&stream, Headers => { Foo => "bar" }); sub stream { my ($request, $response) = @_; $response->send(qq!<script language="JavaScript">alert("hi");</script>!); $response->close(); } sub uri { # my ($request,$response) = @_; # $response->next(); # return RC_WAIT; } sub artur { my $request = shift; my $response = shift; my $connection = shift; $response->code('200'); $response->content("Welcome to " . $request->uri); return $response; } sub callback { my $request = shift; my $response = shift; my $connection = $request->connection; #my $cookie = CGI::Cookie->new(-name => "FOO", -value => "bar"); $response->code('200'); $response->push_header("Content-type", "text/html"); #$response->push_header('Set-Cookie' => $cookie->as_string); $response->content("Welcome ".$connection->remote_ip); # $response->streaming(1); return $response; } $poe_kernel->run();