package TestObjects; ... my @objects; my $id; sub new{ my ($class) = @_; my $self = {id=>++$id}; bless $self,$class; push @objects,$self; return $self; } sub first { 1 } sub last { $id } ... 1;