I don't know how many other things that your executable asks for on standard input, but if it's only this one file name, the following command will do what you need.
`echo "$file" | $prog`;
You can get rid of that fork, pipe, and pid stuff.
Since I got downvoted, maybe I wasn't being clear enough here? I still think this is a valid answer to the OP's original question.
If a script expects input (in this case, a file name), you can pipe the input into the script. Take the following script as an example:
my $in = <STDIN>;
# END #
Now test it
> echo "Hello, world!" | ./test.pl
I think this is what the OP is looking for instead of his opening on pipes, etc.
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>
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
Want more info? How to link or
or How to display code and escape characters
are good places to start.