in reply to Object Troubles

Without seeing the accessor methods, I can only surmise that you're setting class (not instance) variables:
sub name { my $self = shift; # the following is the broken line $self = ref($self) || $self; if (@_) { $self->{Name} = shift; } return $self->{Name}; }
The following demonstrates what happens:
my $a = new HIT; my $b = new HIT; print $a->Name('Corwin, Prince of Amber'); print $b->Name();
Even calling the constructors with the direct object syntax doesn't work. Of course, this all depends on how your methods work.