If you're writing a script that calls for user input, you had better prompt the user ... otherwise, the terminal / window will appear to hang and the user won't know what's going on. However - if you're reading your answers from a pre-prepared file or piping them in from another process, all of these immediataley answered prompts will look really odd on the output.
In perl, you can use the -t file test, but
on a file handle to see if that file handle is conneted to an interactive device, or is not interactive. Most commonly, it's used on STDIN. Here's a demo program:
# See if we are using an interactive input ...
# If we are, prompt the user. If not, just read
if (-t STDIN) {
print "How much? "; }
chop($value = <STDIN>);
print "You paid $value too much\n";
Samples of this running, interactive with the prompt:
Dorothy-2:perl grahamellis$ perl sinter
How much? 33
You paid 33 too much
Dorothy-2:perl grahamellis$
And non-interactive:
Dorothy-2:perl grahamellis$ echo 55 | perl sinter
You paid 55 too much
Dorothy-2:perl grahamellis$ (written 2009-09-14 18:27:33)
Associated topics are indexed under
P207 - Perl - File Handling [2233] Transforming data in Perl using lists of lists and hashes of hashes - (2009-06-12)
[1861] Reactive (dynamic) formatting in Perl - (2008-10-31)
[1860] Seven new intermediate Perl examples - (2008-10-30)
[1841] Formatting with a leading + / Lua and Perl - (2008-10-15)
[1709] There is more that one way - Perl - (2008-07-14)
[1442] Reading a file multiple times - file pointers - (2007-11-23)
[1416] Good, steady, simple example - Perl file handling - (2007-10-30)
[1312] Some one line Perl tips and techniques - (2007-08-21)
[867] Being sure to be positive in Perl - (2006-09-15)
[702] Iterators - expressions tha change each time you call them - (2006-04-27)
[618] Perl - its up to YOU to check your file opened - (2006-02-23)
[616] printf - a flawed but useful function - (2006-02-22)
[255] STDIN, STDOUT, STDERR and DATA - Perl file handles - (2005-03-23)
[114] Relative or absolute milkman - (2004-11-10)
[12] How many people in a room? - (2004-08-12)
P215 - Perl - More about Files [1832] Processing all files in a directory - Perl - (2008-10-11)
[1225] Perl - functions for directory handling - (2007-06-09)
Y108 - Python - String Handling [2284] Strings as collections in Python - (2009-07-12)
[1876] Python Regular Expressions - (2008-11-08)
[1608] Underlining in Perl and Python - the x and * operator in use - (2008-04-12)
[1517] Python - formatting objects - (2008-01-24)
[1195] Regular Express Primer - (2007-05-20)
[1110] Python - two different splits - (2007-03-15)
[970] String duplication - x in Perl, * in Python and Ruby - (2006-12-07)
[954] Splitting Pythons in Bradford - (2006-11-29)
[943] Matching within multiline strings, and ignoring case in regular expressions - (2006-11-25)
[903] Pieces of Python - (2006-10-23)
[773] Breaking bread - (2006-06-22)
[560] The fencepost problem - (2006-01-10)
[496] Python printf - (2005-11-15)
[463] Splitting the difference - (2005-10-13)
[324] The backtick operator in Python and Perl - (2005-05-25)
Some other Articles
TypeError: super() argument 1 must be type, not classobj (Python)Robust user input (exception handling) example in PythonTesting code in Python - doctest, unittest and othersPound Sign in Python ProgramBut I am reading from a file - no need to prompt (Perl)Low Sun - Autumn is hereHotel Booking Scam / Cost of calls to 070 numbersAutomated Browsing in PerlBack TomorrowAre you wanting to learn PHP?