>> >> I am using an ORM, which creates methods for my class using globs, in place. >> >> e.g. __PACKAGE__->has_a('foo'...); >> > > Class::MOP (and so Moose) recognizes methods as code symbols in a > package that also have a valid subname (as with Sub::Name). This is > because methods declared with the 'sub' keyword automatically get the > appropriate subname, and functions exported into your package by > assigning to globs don't, and so function exports (from things like > Try::Tiny, List::Util, etc) don't get seen as methods. If you're using > something that's actually intending to export methods, you'll have to > add the subname yourself, either (as Moose does) by doing it inside the > exporter, like > > use Sub::Name; > *foo = subname 'foo' => sub { ... }; > > or I believe you can also add a subname after the fact with something > like > > use Sub::Name; > subname 'foo', \&foo; > > although I'm not entirely sure about that one. > >
Wow, this is interesting. I am guessing, I can subclass & modify the ORM to use this method of creating methods. I'll give it a try. Thanks!