Perl POE
From Teknologisk videncenter
Contents
POE - portable multitasking and networking framework for Perl
A simple multitasking TCP Server
#!/usr/bin/perl
use warnings;
use strict;
use POE qw(Component::Server::TCP);
POE::Component::Server::TCP->new(
Port => 12345,
ClientConnected => sub {
print "got a connection from $_[HEAP]{remote_ip}\n";
$_[HEAP]{client}->put("Smile from the server.");
},
ClientInput => sub {
my $client_input = $_[ARG0];
$client_input =~ tr[a-zA-Z][A-Za-z];
$_[HEAP]{client}->put($client_input);
},
ClientDisconnected => sub {
print "client from $_[HEAP]{remote_ip} disconnected\n";
},
);
POE::Kernel->run;
Timing the lifespan of a session
sub _start_handler {
$_[HEAP]{ts_start} = time();
}
sub _stop_handler {
my $time_elapsed = time() - $_[HEAP]{ts_start};
print "Session ", $_[SESSION]->ID, " elapsed seconds: $elapsed\n";
}