ShaneMetler has asked for the wisdom of the Perl Monks concerning the following question:
i am trying to get perl_script.pl to accept a redirected file,
or execute a different code block when perl_script.pl is run without input.#> perl_script.pl < data_file.txt
the problem that i've run into, is that the while loop to accept STDIN (for piping in a data file), also waits forever for consol entered data (when the piped data file is not present). how can i bypass this consol data option?#> perl_script.pl
piped data vs consol data is equivalent from the perl script's perspective, so there isn't a way to test whether the input is piped data vs. consol data?
another approach i couldn't resolve is if there is anyway to timeout reading from STDIN? the piped data would be fed within seconds, but all code execution seems to stop at the first itteration of the while(<stdin>) loop, waiting for consol data ...
or are there other options available? i know many scripts have this sort of duel functionality.
thanks in advance,
Shane Metler
shane<nospam>@<nospam>shanemetler.com
Edit by tye, preserve formatting
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: accept piped stdin, but bypass consol entry
by liz (Monsignor) on Sep 18, 2003 at 17:42 UTC | |
by ShaneMetler (Initiate) on Sep 18, 2003 at 18:41 UTC |