package Particle;
...
sub newMoveableParticle {
my $class = shift;
my $p = $class->new( @_ );
$p->set( 'is_moveable', 1 );
return $p;
}
sub newStationaryParticle {
my $class = shift;
my $p = $class->new( @_ );
$p->set( 'is_moveable', 0 );
return $p;
}
####
$REGISTRY{$self} = $self;
##
##
DESTROY {
my $self = shift;
delete $REGISTRY{$self};
}