So, to summarize what it is I think you're getting at:
can() doesn't really serve any useful purpose.
- It doesn't really provide usefulness as an interface validator (because interfaces change and because of AUTOLOAD)
- Its secondary function of providing a coderef doesn't help, because of AUTOLOAD and because of the questionable use of this
So, why does it exist?
We are the carpenters and bricklayers of the Information Age.
Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose