package MyClass; my $instances = 0; # Class data as a lexical sub new { my $class = shift; my $self = { attribute => 'foo', }; bless $self, $class; $instances++; return $self; } sub DESTROY { my $self = shift; $instances--; return; } # Class data accessor # Could also be a mutator, but it doesn't makes sense here. sub instances { return $instances; } # Class data accessor/mutator sub attribute { my $self = shift; if( @_ ) { $self->{attribute} = shift; } return $self->{attribute}; }