#!/usr/bin/perl use strict; use warnings; package Point; use Moose; sub new { my $self = {}; $self->{X} = undef; $self->{Y} = undef; bless($self); return $self; } sub x { my $self = shift; if (@_) {$self->{X} = shift;} return $self->{X}; } sub y { my $self = shift; if (@_) {$self->{Y} = shift;} return $self->{Y}; } package main; my $p1 = Point->new; $p1->x(10); print $p1->x;