Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: Very Basic Perl Question about IRC

by Tanktalus (Canon)
on Nov 06, 2012 at 01:48 UTC ( #1002409=note: print w/replies, xml ) Need Help??

in reply to Very Basic Perl Question about Sockets .. and IRC

There are a few approaches available here. The most obvious might be to use threads - one thread that would read from the socket (blocking), a second thread to write to the socket (blocks on the input queue used to feed it stuff to send), and a third to read from stdin (perhaps using Term::ReadLine). I'm not sure if that middle thread is quite needed, though it would handle race conditions between the first and last threads for sending stuff to the IRC server.

Personally, I do this basic type of thing with a single thread using event-based code, usually AnyEvent/Coro, though some will swear by POE. And, with a new enough Term::ReadLine, you can integrate it with Coro fairly well, or other event loops not quite so well, but still passably if done with Term::ReadLine being your main event loop (see Term::ReadLine::Event for example code), though there's always the issue of spitting stuff to the screen (input from IRC server) while waiting at a prompt.

That's for "this basic type of thing." For this specific type of thing (IRC), I use Xchat and perl plugins to Xchat.

Replies are listed 'Best First'.
Re^2: Very Basic Perl Question about IRC
by Contraversy (Initiate) on Nov 06, 2012 at 02:06 UTC
    Thank you so much, more than enough info here to do what I need!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1002409]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2018-06-20 14:14 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (116 votes). Check out past polls.