Mark,

I suspect you want a custom meta-class as well as a custom meta- attribute then. I don't know if you can accomplish this only using the attribute sub-protocol alone.

- Stevan

On Jul 3, 2009, at 7:31 PM, Mark Morgan wrote:

In my case, I'm attempting to ensure that only a single attribute is
marked as 'asdf' for a given class. The specified attribute would be
treated specially during constuction

To be more precise, I'm looking at creating a module to allow
capturing all arguments that are not defined within init_arg's.
Ideally, this would be able to ensure at class build time that exactly
one attribute is marked as 'slurpy' for a given class. As it stands
now, I'm only able to ensure this at object instantiation time, which
isn't ideal; better to be able to throw an error when multiple
attributes are marked as slurpy at build time.

Mark.

On Friday, July 3, 2009, Dave Rolsky <auta...@urth.org> wrote:
On Fri, 3 Jul 2009, Mark Morgan wrote:


has asdf => (
  is      => 'ro',
  trigger => sub {
      my ( $self, $value ) = @_;

      printf( "In trigger, assosciated class = %s\n",
          $self->associated_class
      );
  },
);


This trigger gets called when the attribute is first created. However, associated_class won't be set until _after_ the attribute has been created and added to a metaclass object, when $attr- >attach_to_class($metaclass) is called.

I have no idea what you're trying to do, but I'm sure there's some other way to do it.


-dave

/*============================================================
http://VegGuide.org               http://blog.urth.org
Your guide to all that's veg      House Absolute(ly Pointless)
============================================================*/


Reply via email to