Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

comment on

( [id://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":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (8)
As of 2024-04-23 08:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found