Well, you basically will need somewhere in your program a piece where all the irc connections work together (unless you want to give each irc connection its own separate thread or process) - and that's called the select loop. OO is nice for modelling data, but it doesn't do the program flow for you. Deep down, the heart of your program will be a simple loop:
while true
do is there anything to read or write on my IRC connections?
if so, read or write,
else maybe do something else
done
There are several modules out there that will help you implement it - but you'll need the loop.
Abigail