3 - Class::Accessor::Chained package User; sub new { my $class = shift; my $self = bless {}, $class; return $self; } sub first { my $self = shift; $self->{first} = shift if @_; return $self->{first}; } sub surname { my $self = shift; $self->{surname} = shift if @_; return $self->{surname}; } package main; my $user = User->new(); $user->first("Linus"); $user->surname("Torvalds");