Jeff Hallock wrote:
> Hi Dave,
>
> 'after' is called after a method call.
>
> If you want a block of code to be called every time you set an attribute, you
> want to use a trigger:
>
> has 'foo' => (
> is => 'rw',
> trigger => sub {
> # will be called when setting the attribute via 'new' or via
> the writer method
> my ( $self, $newval, $oldval ) = @_;
> ...
> }
> );
That's great. My code works now. Thanks Jeff.
It does seem counter-intuitive. I'd expect
$o = Class->new(attribute => 'value');
to have the same effect as
$o = Class->new(); $o->attribute('value');
Anyway, at least it works and hopefully I'll remember the exception for
next time.
Cheers, Dave