> This is not a bug. Attribute initialization order is explicitly
> undefined (the documentation mentions this in several places). If you
> need a defined initialization order, you should make the appropriate
> attributes lazy.

That's not how I read that statement. When you say attribute
initialization order is undefined I read that literally. Example,

has "foo" => ( isa => "Int", is => "ro", default => 1 );
has "bar" => ( isa => "Int", is => "ro", default => 2 );

Is undefined such that "foo", and "bar" will be set in an undefined
order. Not, that the constructor provided arguments and
strict-defaults are undefined. I don't even read "initialization" as
being an apt choice of words for setting "foo", via

Class->new({ foo => bar })

I'm not sure if this misunderstanding is unique to myself or not, but
I didn't take your statement (or the docs) to be at odds with my own
mental model of Moose behavior.

-- 
Evan Carroll - m...@evancarroll.com
System Lord of the Internets
web: http://www.evancarroll.com
ph: 281.901.0011

Reply via email to