my ($r, $w, $e) = IO::Select->select($select, $select, $select); foreach my $readable (@$r) { if ($readable == $serverSocket) { ... } elsif ($readable == $clientSocket) { ... } } # etc for $w (writable) and $e (exceptional)