Difference between revisions of "Perl POE"
From Teknologisk videncenter
m (→A simple multitasking TCP Server) |
m (→A simple multitasking TCP Server) |
||
Line 25: | Line 25: | ||
POE::Kernel->run; | POE::Kernel->run; | ||
+ | </source> | ||
= Timing the lifespan of a session = | = Timing the lifespan of a session = | ||
<source lang="perl"> | <source lang="perl"> | ||
Line 34: | Line 35: | ||
print "Session ", $_[SESSION]->ID, " elapsed seconds: $elapsed\n"; | print "Session ", $_[SESSION]->ID, " elapsed seconds: $elapsed\n"; | ||
} | } | ||
− | |||
− | |||
</source> | </source> | ||
Revision as of 07:53, 20 March 2009
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";
}