Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: detect input available from command line

by jwkrahn (Abbot)
on Mar 10, 2011 at 21:33 UTC ( [id://892540]=note: print w/replies, xml ) Need Help??


in reply to detect input available from command line

if ( @ARGV ) { while (<>) { } } else { # do something else }

Replies are listed 'Best First'.
Re^2: detect input available from command line
by mifflin (Curate) on Mar 10, 2011 at 21:51 UTC
    What if the input is not coming from @ARGV but from stdin?
    example:
    $ ./testprog -t testing@testing.com -s test5 <<EOT; > stuff > typed > in > here > EOT
    In this case @ARGV is empty but there is still something to read. How would I detect this?

      You could test

      if (@ARGV or !-t STDIN and !eof()) { while (<>) { ...

      (but any non-input file arguments would need to be removed from @ARGV first, of course)

      This should work with input file arguments on the command line, heredoc input (<<), input redirect (<), and piping into the program (|).

      Update: actually, I think you don't even need the eof().

      I have a program that may try to get data from the command line using

      What if the input is not coming from @ARGV but from stdin?

      If the input is coming from STDIN then it is not on the command line.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://892540]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (2)
As of 2024-04-19 19:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found