# from David Nicol
# on Tuesday 07 December 2010 14:12:
>on_connect => $cb->($handle, $host, $port, $retry->())
This is confusing. If you're going to illustrate how it is called, take
it out of the context of how it is declared.
on_connect => sub {
my ($handle, $host, $port, $retry) = @;
...
}
As for illustrating "I will pass you a subref here", I would say:
$on_connect->($handle, $host, $port, sub {...})
or:
$on_connect->($handle, $host, $port, \&retry);
or even just:
$on_connect->($handle, $host, $port, $retry_hook);
But in this particular case, something like a "connection" object with
handle(), host(), and port() methods seems more appropriate, which then
would allow one to do something like '$c->retry until $c->connected'
(assuming appropriate error handling semantics.)
Alternatively, perhaps the last parameter should be an object where one
would say 'return $knob->retry' and this would result in the on_connect
hook being called again after the next connection was established.
If you can, avoid the need to document "I will pass a callback to your
callback".
--Eric
--
Entia non sunt multiplicanda praeter necessitatem.
--Occam's Razor
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------