package Person;
use warnings;
use strict;
use Carp;
my $Population = 0;
sub new {
    my $class = shift;
    my $self = {@_};
    bless($self, $class);
    $Population++;
    return $self;
}
# Object accessor methods
sub address { $_[0]->{address }=$_[1] if defined $_[1]; $_[0]->{address } }
sub surname { $_[0]->{surname }=$_[1] if defined $_[1]; $_[0]->{surname } }
sub forename { $_[0]->{forename}=$_[1] if defined $_[1]; $_[0]->{forename} }
sub phone_no { $_[0]->{phone_no}=$_[1] if defined $_[1]; $_[0]->{phone_no} }
sub occupation {
$_[0]->{occupation}=$_[1] if defined $_[1]; $_[0]->{occupation}
}
# Class accessor methods
sub headcount { $Population }
1;



#!/usr/bin/perl
use warnings;
use strict;
use Person;
print "In the beginning: ", Person->headcount, "\n";
my $object = Person->new (
    surname => "G",
    forename => "G",
    address => "Apts.",
    occupation => "tester"
);
print "Population now: ", Person->headcount, "\n";