package Foo; use threads; use threads::shared; sub new { my $class = shift; my $self : shared; $self = &share({}); $self->{socket} = &share(new IO::Socket::INET ( PeerAddr => $self->{ipAddress}, PeerPort => $self->{port}, Proto => 'tcp' )); bless $self, $class; return $self