Greetings fellow monks.

I'm having trouble getting this code to work. The code should open a pipe to a program, then send that program multiple files. The problem is that the pipe is closing as soon as the first file is done. I'm assuming that is because I'm sending the EOF from the first file. How do I correct for that?

open ( SCRIPT, "| /usr/local/bin/my_program" ) or die $!; foreach ( </my/file/dir/*> ) { if ( /\.gz$/ ) { open ( FILE, "/usr/bin/zcat $_ |" ) or die $!; } else { open ( FILE, "< $_" ) or die $!; } while ( <FILE> ) { print SCRIPT; } close( FILE ); } close( SCRIPT );

I also tried this slight variant which uses chomp, but no luck:

while ( chomp( my $line = <FILE>) ) { print SCRIPT "$line\n"; }

I am finding that after the first file is sent, the program on the receiving pipe doesn't recieve any more data, but Perl keeps chuging along sending the other files to the pipe. As soon as the receiving program exits, my script dies with a "Broken Pipe" error.


In reply to Cat multiple files into one pipe by ehdonhon

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.