in reply to OT: xml format question

Personally I wouldn't use either - I'd use xCard or vCard RDF.

Why design yet another contacts format, when you can re-use an existing standard and have at least a slight chance of interoperability with other tools?

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name