|Think about Loose Coupling|
Re^2: Advice on styleby afoken (Canon)
|on Nov 26, 2010 at 10:13 UTC||Need Help??|
I didn't know that require Exporter; our @ISA = qw(Exporter); is outdated code.
And how should you know that?
The synopsis of Exporter still (as of v5.63 found on CPAN) has this code as the very first example. The shorter and cleaner use Exporter 'import'; is the second example, and no word in the synopsis explains the differences. Even in the "Good Practices" section linked from the synopsis, all of the examples inherit from Exporter. Importing Exporter::import is explained in just four sentences hidden in "Advanced Features" -> "Exporting without inheriting from Exporter".
I think the Exporter documentation needs some patches, explaining the difference. It also should tell people not to inherit from Exporter in new code. Perhaps all of the inheritance stuff should be moved to a "legacy usage" section.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)