compare performance of readline vs sysread vs recv

This benchmark allows you to compare performance of
different approaches of extracting "\n" terminated lines
from a socket. The approaches are: readline (<> operator),
sysread and IO::Socket::INET::recv. To achive this, I wrote
a simple server which generates stream of lines of given length and
three clients. client-sysread and client-recv implements application
layer buffering strategy, while client-readline uses PerlIO buffer.

I tried to do my best in optimizing the code :-)

How to run:
cd tools/benchmarks/readline_vs_sysread_vs_recv/
./run.pl

Result of my test runs:
Simply say - readline almost always beats everyone.