Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Ok, I think I've solved it. I won't even start on how annoying this is, and how much I wish I'd figured it out sooner. I'm still a little mystified on why it's failing in the original code, though. I have a theory, but I don't know Perl internals well enough to know if it's correct.

Basically, it's the part where I grab the filehandle via shift that is blowing up the program. It seems to be tightly associating my lexical loop variable with the filehandle, and then when the variable (and thus the filehandle) go out of scope at the end of the loop, it's trying to cleanup the filehandle (by closeing and waiting on it.

my $fd = shift @{$_}; my $child = shift @{$_};

When I replace that with the following:

my $fd = $_->[0]; my $child = $_->[1];

It works.

My theory is that because the underlying container where the filehandle is being stored is an array reference, that when I shift on the (dereferenced) array reference, I'm stomping on the original, even though it's in a for loop and using $_.

Does that sound right? Chalk it up to the care needed for references and reference "copies", I suppose.


In reply to Re: Select on child output problem by topher
in thread Select on child output problem by topher

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!
  • 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, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            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.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others contemplating the Monastery: (9)
    As of 2013-06-19 07:52 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      How many continents have you visited?









      Results (645 votes), past polls