Código
my $servsock = new IO::Socket::INET( LocalPort => $port, Proto => 'tcp', Listen => 1, Reuse => 1, my $temp=<STDIN>;
En esa parte, si new IO::Socket::INET() falla y el or pasa al otro lado con el die, tu programa pedira "Inserta cuantos minutos quieres escuchar: " y luego, así como así... CRASH!
a demas de my $temp=<STDIN>, que te dejara un fin de línea, si no me equivoco.
esta otra parte tambien me resulto dudosa (Tal vez por el estado somnoliento):
Código
my $temp=<STDIN>; my $temp2=$temp*60;
y al final:
Código
for ($i=0;$i<$c;$i++){ $temp2=$i+1; }
se usaria un foreach porque el objetivo es recorrer el array. Por ultimo podrias evaluar el uso de matrices asociadas (en jerga perlera: Hashes) para simplificar el logging de las conexiones.
Se ve que tenes buena base de programación, pero no usas las practicidades de Perl.
Y un ultimo consejo: Si te gusta Perl deja de una vez a Microsoft y venite para Linux, donde Perl esta en su salsa.