package _Person; use strict; use warnings; sub new { my $proto = shift; my $class = ref( $proto ) || $proto; my $self = { 'person_id' => 0, 'firstname' => '', 'lastname' => '', }; $self->_init( @_ ); return $self; } sub _init { my $self = shift; my %args = @_; return unless ( %args ); $self->person_id( $args{'person_id'} ); $self->firstname( $args{'firstname'} ); $self->lastname( $args{'lastname'} ); } sub person_id { my $self = shift; my $data = shift; $self->{'person_id'} = $data if ( defined $data ); return ( defined $self->{'person_id'} && $self->{'person_id'} =~ m,^\d+$, ) ? $self->{'person_id'} : 0; } sub firstname { # Same as person_id(), except the obvious } sub lastname { # Same as person_id() and firstname(), except the obvious } 1;