package Class; sub new { my $class = shift; my $self = {X => shift, Y => shift,}; return bless $self, $class; } sub x { my $self = shift; if (@_) { $self->{'X'} = @_[0]; } return $self->{'X'}; } sub y { my $self = shift; if (@_) { $self->{'Y'} = @_[0]; } return $self->{'Y'}; } 1; package Main; my $o = Class->new(20); print $o->x() . "/" . $o->y() . "\n"; # 20/ $o = Class->new(40, 50); print $o->x() . "/" . $o->y() . "\n"; # 40/50 $o->x(300); print $o->x() . "/" . $o->y() . "\n"; # 300/50