Has the community reached a consensus on the preferred way to implement
a mixin class? After reviewing some common modules, I have come
across at least three different ways of implementing a mixin class.
- Using Standard Perl Inheritance
A class like Class::Accessor uses the Perl inheritance
mechanism to bring their methods into the package name-space. If you
want to bring in more mixin classes, you need to add them to your
use base qw(..) statement.
- Customized import And Manipulation of the Symbol Table
Unlike Class::Accessor, Class::Trigger uses a
customized import function to manipulate the package's symbol
table to add the new methods.
- Export methods into Package Name-Space
Finally, a module like Class::DBI::FromCGI uses
Exporter to export the method names directly into the
There may be other ways of implementing a mixin class. Are any of the
methods listed above the preferred way, or is there another method