> 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 - [email protected]
System Lord of the Internets
web: http://www.evancarroll.com
ph: 281.901.0011