[quote=betterworld,12.05.2007, 23:10]
[/quote]
Hierbei sollte man nur beachten, dass $socket->accept bei
einem Timeout selbstverständlich undef zurück liefert. Falls
man also auf eingehende Requests in einer Schleife wartet,
würde das Skript beendet werden:
$socket->timeout(5);
while (my $c = $socket->accept) {
# request Verarbeitung
}
close($socket);
exit(0);
Um das zu umgehen, kann man einfach eine weitere Schleife
drum herum benutzen:
$socket->timeout(5);
while ( 1 ) {
warn "listen for incoming requests";
while (my $c = $socket->accept) {
warn "request comes in from ", $c->peerhost;
}
warn "socket timeout";
}
Ein weiterer Vorteil der äußeren Schleife ist, dass man dort
mit
last oder
next hinspringen kann, falls man
mit einem eingehenden Request nicht einverstanden ist.\n\n
<!--EDIT|opi|1179067349-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.