use strict;
use warnings;
use v5.10;
use Person;
use GrownUp;
my $kid = Person->new( fname => 'Foo', lname => 'Bar' );
say "Hello $kid"; # Hello Person=HASH(0x8c54d0)
my $parent = GrownUp->new( fname => 'Foo', lname => 'Bar' );
say "Hello $parent"; # Hello Foo Bar
package Person;
use strict;
use warnings;
sub new {
my ($class, %args) = @_;
my $self = \%args;
bless $self, $class;
return $self;
}
sub fname {
my ($self, $value) = @_;
return $self->{fname};
}
sub lname {
my ($self, $value) = @_;
return $self->{lname};
}
1;
package GrownUp;
use strict;
use warnings;
use parent 'Person';
use overload
'""' => \&stringify;
sub stringify {
my ($self) = @_;
return $self->fname . ' ' . $self->lname;
}
1;