use Package1; use Data::Dumper; my Package1 $p = Package1->new; $p->[0]->{attr4} = 4; $p->[$p->[0]->{attr4}] = "set_4"; print $p->[0]->{attr4};#the above two steps sunccessfully modified the internal pseudo hash print Dumper($p);#again proves that I successfully modified the internal pseudo hash #print $p->{attr4};#this fails