in reply to New Child to Wait for First Child to Die

Instead of forking, why not use IO::Socket::INET and the Timeout option? It's a standard module, so you should already have it. It'll make things much easier... Like, this easy:

#!/usr/bin/perl use warnings; use strict; use IO::Socket::INET; our @port_range = qw( 8080 6969 80 8081 8080 8000 3128 555 657 889 1180 1181 1182 1183 1184 1185 11012 25318 25719 6969 886 ); # this will be populated dynamically from a DB our @ip_list = qw( 196.2.49.19 grunt.mweb.co.za mweb.co.za ); foreach my $host (@ip_list) { foreach my $port (@port_range) { my $sock = IO::Socket::INET->new( PeerAddr => $host, PeerPort => $port, Proto => 'tcp', Timeout => 10, # 10 second time-out ) or next; # Didn't work, so try next port print "Connection established to $host on $port.\n"; $sock->close(); } }

bbfu
Black flowers blossom
Fearless on my breath