|Think about Loose Coupling|
Re: Advice on styleby afoken (Prior)
|on Nov 25, 2010 at 16:21 UTC||Need Help??|
I wouldn't inherit from Exporter at all, so I would get rid of @ISA=qw(Exporter). Exporter can export its own import() function into your module since v5.57 == Perl 5.8.3 (released 2004-01-14), so there is no need to inherit from Exporter any more. I would not use require, because it requires more typing than use and it is processed at runtime, not at compile time. use Exporter 'import'; is all you need to use Exporter's features from your module. Fall back to ...
... only if you need to support really old Perl versions.
Note that there are several Exporter replacements, Sub::Exporter has some very interesting features, but it can export "only" subs, no variables.
Regarding style, I prefer the following: pragmas first, followed by core and CPAN modules, followed by my own modules (mostly application specific). So, a typical module would look like this:
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)