package ServerController; use strict; use IO::Socket; use threads; use threads::shared sub new {    my $proto = shift;    my $class = ref($proto) || $proto;    my $self  = {};    bless ($self, $class);    $self->{LISTENSOCKET} = IO::Socket::INET->new(...);    $self->{CLIENTS} = [];    $self->{THREAD} = threads->new("listen", $self);    return $self; } sub listen{    my $self = shift;    while(1){          my $client = $self->{LISTENSOCKET}->accept();          push @{$self->{CLIENTS}}, $client;    } } 1;