add use of BUILDARGS to exercises for section 01
[gitmo/moose-presentations.git] / moose-class / exercises / answers / 01-classes / Person.pm
CommitLineData
ddd87d75 1package Person;
2
3use Moose;
4
5has first_name => ( is => 'rw' );
6has last_name => ( is => 'rw' );
7
f7da468c 8sub BUILDARGS {
9 my $class = shift;
10
11 if ( @_ == 1 && 'ARRAY' eq ref $_[0] ) {
12 return {
13 first_name => $_[0]->[0],
14 last_name => $_[0]->[1],
15 };
16 }
17 else {
18 return $class->SUPER::BUILDARGS(@_);
19 }
20}
21
ddd87d75 22sub full_name {
23 my $self = shift;
24
25 return join q{ }, $self->first_name, $self->last_name;
26}
27
28no Moose;
29
30__PACKAGE__->meta->make_immutable;
31
321;