Thanks ever so much. Your reply was part of the solution. Interestingly, the reason why the die was never executed (much less displayed anywhere) was because of an apparent race condition(?) between writing to the err.log and testing its size. In the following
if (-z...) conditional, a
print "you missed errlog size" statement would be printed, despite the fact that a check afterwards showed that err.log contained the lines I was expecting for the test case. A bit of sleep chicanery was required. So this works as desired:
open SAVERR, ">&STDERR";
open STDERR, ">>err.log";
# Perl can run the shell #
if (open(PIPE, "$cmd <$tempfile |"))
{
sleep(2);
if (-z './err.log')
{
close SAVERR;
process(*PIPE);
}
# but there is a message in STDERR #
else
{
#
print LOG "ERROR: see err.log, exiting...\n";
#
close STDERR;
open STDERR, ">&SAVERR";
die "Killed.\n";
}
}
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.