The correct way to do this, is to avoid the fork() altogether, as you don't really need it.

Probably your game will incorporate an event loop at its core. This would be something along the lines of:

while (1) {

  # do each round of your game here

  if ($the_player_wants_to_exit) { &my_exit_method(); }

}
In fact, since your game involves network players, your loop most likely looks like:

while (1) {

  &get_a_message_from_a_player();

  # Do the rest of your game round processing here

  if ($the_player_wants_to_exit) { &my_exit_method(); }

}
What I would do, is to embed the processing of new players inside the same event loop. This would be something along the lines of:
while (1) {

  &get_and_process_new_player();
  &get_a_message_from_a_player();

  # Do the rest of your game round processing here

  if ($the_player_wants_to_exit) { &my_exit_method(); }

}
IMO, this will make your life easier. Take a look at IO::Socket and IO::Select, as they are of great help for what you need here.

Regards.


In reply to Re: Fork and pipe by fokat
in thread Fork and pipe by gri6507

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.