ohh perl masters ...

i am trying to get perl_script.pl to accept a redirected file,

#> perl_script.pl < data_file.txt
or execute a different code block when perl_script.pl is run without input.
#> perl_script.pl
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?

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


In reply to accept piped stdin, but bypass consol entry by ShaneMetler

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.