Subject: | Special treatment for Moose Objects, attention drawn to AutoBox as future delegate for VM. |
Moose Objects should be special cased and excluded from Hash Virtual
Methods (VM)
It is the sole purpose of Moose to provide a layer of
object-introspection. The layer that TT overlays is an affront to the
smoother layer of Moose. It treats a Moose object as a Hash -- even
though one of the very purposes of Moose is to endeavor to create real
objects in Perl oblivious to their base types. I'd suggest that TT not
install VM on blessed objects, or at least not on Moose objects. I'm not
sure how much you know about Moose, or how much further I need to
continue with this. I'd be glad to give you more reasoning, but I fear
that it would all be redundant if you're already a Moose user.
VM are great for base-types, but there is a far better implementation
for Moose objects:
http://search.cpan.org/~flora/Moose-1.05/lib/Moose/Meta/Attribute/Native.pm
In fact, you could modernize TT by delegating all of this to autobox,
which does a much fuller job at abstracting base-types as objects.
http://search.cpan.org/~chocolate/autobox-2.70/lib/autobox.pod
So my priority of requests is as follows in ascending order of preference:
(a) get rid of VM on Moose
(b) get rid of VM on blessed objects
(c) delegate VM to autobox which doesn't apply to blessed types (objects).
--
Evan Carroll
System Lord of the Internets
http://www.evancarroll.com