Commit | Line | Data |
ddd87d75 |
1 | package Person; |
2 | |
3 | use Moose; |
4 | |
5 | has first_name => ( is => 'rw' ); |
6 | has last_name => ( is => 'rw' ); |
7 | |
f7da468c |
8 | sub 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 |
22 | sub full_name { |
23 | my $self = shift; |
24 | |
25 | return join q{ }, $self->first_name, $self->last_name; |
26 | } |
27 | |
28 | no Moose; |
29 | |
30 | __PACKAGE__->meta->make_immutable; |
31 | |
32 | 1; |