in reply to Re^2: OO Perl: after it creates 2nd object overwrites hash from the first
in thread OO Perl: after it creates 2nd object overwrites hash from the first

Your version doesn't create a new hashref for each object. It just reuses the same one:
my $self1 = {}; %{ $self1->{hash} } = (); print "$self1->{hash}\n"; %{ $self1->{hash} } = (); print "$self1->{hash}\n"; #Output: HASH(0x504f80) HASH(0x504f80)

My use of {} creates a new hashref for both objects:

my $self2; $self2->{hash} = {}; print "$self2->{hash}\n"; $self2->{hash} = {}; print "$self2->{hash}\n"; #Output: HASH(0x622bb0) HASH(0x504160)