in reply to initializer method called from object constructor, overwriting the another object's variables

The variables $self_ip and $partner_ip are "class variables" (defined in the package, but outside of one of the methods). Consequently they can be seen by all objects instantiated from the package. And as you found out, anything that can be seen by an object can be modified by the object.

If you need them to be part of each object, then they have to be defined in the object by adding them in the new()method --

sub new { my $ip_addr = shift(); my $self = { DEVICE_IP => $ip_addr, self_ip => undef, partner_ip => undef, }; bless $self, 'MyPackage'; $self->my_init(); return($self);

----
I Go Back to Sleep, Now.

OGB

  • Comment on Re: initializer method called from object constructor, overwriting the another object's variables
  • Select or Download Code