Definitely not Net::IRC, as it is known to be buggy. So cook with plain sockets yourself, use POE (which integrates well with Gtk) or even IO::Async ; but in any case you can have Parse::IRC to do the ungrateful work of parsing the messy protocol that is IRC (which is what I understand by 'handling IRC').