foreach my $hostvar (@remote_host) { $sockserver = new IO::Socket::INET (LocalHost => $hostvar, LocalPort => $remote_port, Proto => 'tcp', Listen => 5, Reuse => 1 ) or warn "Socket could not be created in $hostvar. Reason: $!" unless $sockserver; } while ($new_sock = $sockserver->accept()) { while (defined ($buf = <$new_sock>)) { # do something with $buf, and ask confirmation, input #etc. from the client and again come back ... in a loop. } } close ($sockserver); }