#!/usr/bin/env perl use warnings; use strict; # Note: POE's default event loop uses select(). # See CPAN for more efficient POE::Loop classes. use POE; use POE::Component::Server::TCP; POE::Component::Server::TCP->new( Port => 8888, ClientConnected => sub { print "Client connected.\n"; }, ClientInput => sub { my ($app, $storage, $input) = @_[KERNEL, HEAP, ARG0]; print "Got client input: $input\n"; $storage->{client}->put($input); $app->yield("shutdown") if $input eq "quit"; }, ClientDisconnected => sub { print "Client disconnected.\n"; }, ); POE::Kernel->run();