The Class::Role and Class::Roles modules on CPAN implement a form of
compile-time Perl6 role composition for Perl5.

Neither supports run-time role composition, as-in:

    The does operator returns the object so you can nest mixins:

        $fido does Sentry does Tricks does TailChasing does Scratch;

    Unlike the compile-time role composition, each of these layers on a new
    mixin with a new level of inheritance, creating a new anonymous class
    for dear old Fido, so that a .chase method from TailChasing hides a
    .chase method from Sentry.

To help with DBI v2 I need a Perl5 implementation of roles that supports
run-time role composition.

I figure it just needs to generate a new class with @ISA set to
ref($random_object), link-in the methods, then rebless $random_object into it.
Plus a cache to avoid setting up a new class if it's already generated
one for ref($random_object)+$role_name.

I'd work on it myself but I'm busier than usual at the moment[1] and I
don't know which of Class::Role or Class::Roles I should add it to.
If no one volunteers I'll have a go in a week or three.


[1] Our second child will be arriving 'any day'.

Reply via email to