Ben Morrow said:
Inheriting from Exporter is no longer best practice.
Non-ancient versions of Exporter (5.57, with perl 5.8.3) will export
'import', so you can say
use Exporter "import";
instead and avoid inheriting a whole lot of random internal Exporter
methods you didn't want.
This would be more appropriately reworded as "I [meaning, you] (and
presumably some set of other people [who summarily confused enough
that they think that 'modern', whose actual meaning is 'currently
fashionable', would be 'surely positive enough' to make any actual
argument in favor of such an opinion redundant]) happen to be of the
opinion that this shouldn't be done".
And my reply to that would be: It's documented and it works and I've
been using it in this way since the times of perl 5.003. So what's the
compelling reason to change it?
[*] This is actually one of these rare strokes of genius, as nicely
exemplified by the fact that about everyone and his dog has been able
to hush it up in order to make his favority pet language look better in
comparison in a different way for more than a decade.
There are often sound reasons for setting up inheritance at compile
time,
Should I encounter one in code I write, I will consider doing so. But
this hasn't happened in the past sixteen odd years. OTOH, something
I've done fairly often is defining a set of related classes in a
single file, moving some or all of them to different files as the
code evolved and the classes became more complex. Or loading all
modules from some top-level file because of more complex
interdepedencies among them and just declaring inheritance
relationships in the modules.