> 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