in reply to
Re: Why breaking can() is acceptable
in thread Why breaking can() is acceptable
And that is exactly what I was referring to with my comments on "typeglobbing closures instead of AUTOLOAD".
I also usually don't wrap it in a BEGIN block. In the context of a module, there is no real reason to wrap it in a BEGIN block, because the module itself is wrapped in an implicit BEGIN block. Otherwise I prefer to not try to specify BEGIN ordering unless absolutely needed, instead specify ordering of events as simple as I can arrange. (But that was an old discussion with tye.)