> "'connect.cached.new' => [\&pre, \&post]" syntax so that I could do
If I understand correctly, the QPSMTPD people have just implemented
self-registering
callbacks in modules by standardizing the names of the callbacks and
letting package
introspection find them all. The names are hook_* where * is one of
the times that
there is a hook for.
Using that naming convention, a module would register it callback with the DBI
framework by merely having a function called something like
sub hook_connect_cached_new_pre{ ... }
Perhaps the import function invoked by
use DBI::callback_hooks;
could inspect the functions defined in its caller()'s package and
register what it
finds there with the calling-back mechanism.
Just an idea -- I do not know if this approach would be better or
worse than what
is currently being done, or even if it is the same as what is
currently being done --
but in my opinion having multiple levels of naming
> "'connect.cached.new' => [\&pre, \&post]"
is going to be a hassle compared with a single level of naming that
gets as detailed as it needs.
connect_cached_new_pre => \&pre,
connect_cached_new_post => \&post;
In the proposal at the top of this e-mail, presuming you have the pre and post
subs already written and don't want to touch them, the registration of them
could be implied with something like
INIT{
*DBIhook_connect_cached_new_pre = \⪯
*DBIhook_connect_cached_new_post = \&post;
}
if you don't want to just change their names.