Monks; I have been away for some time on a forced excile to the land of Python; but have returned to the fold.

I am in need of guidance for the following. I am trying to use only core packages. I have taken the Msg.pm from "Advanced Perl Programming" (vol 1) and have grafted in a 'workproc' mechanism ala Xwindows. Now I need to be able to handle UDP packetes in the event loop as well as TCP. I am hoping someone has done that and would be willing to share.

There are some portions of the code I don't understand. The use of a data structure 'g-pkg'; and the following

#New Server my ($pkg, $proto, $my_host, $my_port, $login_proc) = @_; and sub set_event_handler { shift unless ref($_[0]); # shift if first arg is package name my ($handle, %args) = @_;
The 1st looks like all new_server call are always OO,
but set_event_handler() may or may not be associated with an Object

====Update:========================
As I continue to look at this (Msg.pm) code, the more I see what seems to be a single connection only functionality.

sub _new_client { my $sock = $main_socket;
That is picking a '$sock' value from a global scalar ($main_socket) that is set only from
$main_socket = IO::Socket::INET->new (
which is the last socket created. I am thinking that this may not be suited for multiple simultanious connections. If you look at 'g_login_proc', it is also a global singleton which is overwritten with each new call to 'new_server'.

So what are the recommendations for a robust communication and event dispatcher? (low learning curve is appreciated.

It is always better to have seen your target for yourself, rather than depend upon someone else's description.


In reply to Msg.pm + UDP by Wiggins

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.