# very crude pseudocode my $select = IO::Select->new($server1); $select->add($server2); $select->add(/*STDIN); #for sending # etc etc my @ready; while(@ready = $select->can_read) { my $socket; for $socket (@ready) { # see if you can read a socket ..... ..... } #see if $select handle is STDIN, if so, send it to all in @ready } # do socket close error checking here