# just a snippit my $kidpid; die "can't fork: $!\n" unless defined($kidpid = fork()); if ($kidpid) { # parent code # insert the preforking server in here on port 4321 } else { # child code my $server = IO::Socket::INET->new(LocalPort=>1234, Type=>SOCK_STREAM, Proto=>"tcp", Reuse=>1, Listen=>10 ) or die "making socket: $@\n"; while(1) { my $kclient = $cserver->accept(); while (defined (my $buf = <$kclient>)) { # code for killing goes here } } }