I have used Net::Telnet and STDIN with fork successfully, I used IPC::Shareable to create shared memory which the main loop can monitor. You just have to be really careful about locking the shared memory when any of the procs accesses it.

Update: It seems this response was not liked by some, so I thought I would clarify.

The above responses were excellent, the problem is if you want your telnet sockets and STDIN to go about thier business and report results back to you which you can reap at any time, AND self terminate reporting that as well, the above approach can run into overhead.

If all you need is to monitor output from the telnet sessions there is really no need for those to slow down the response time in your IO::Select loop, all you need to do is fork a couple watchers that do what they need and report stats when they hit things of interest, and at that point you can do what ever you need to to handle the situation, including interupting the STDIN loop.

Just another way to do it. I like shared memory, but you can use pipes, Unix sockets or whatever method you want to communicate between the processes.

"Nothing is sure but death and taxes" I say combine the two and its death to all taxes!

In reply to Re: Sockets and Fork, Please Help Me!! by Rex(Wrecks)
in thread Sockets and Fork, Please Help Me!! by number_5

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.