Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
But I am reading from a file - no need to prompt (Perl)

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)


Back to
Low Sun - Autumn is here
Previous and next
or
Horse's mouth home
Forward to
Pound Sign in Python Program
Some other Articles
TypeError: super() argument 1 must be type, not classobj (Python)
Robust user input (exception handling) example in Python
Testing code in Python - doctest, unittest and others
Pound Sign in Python Program
But I am reading from a file - no need to prompt (Perl)
Low Sun - Autumn is here
Hotel Booking Scam / Cost of calls to 070 numbers
Automated Browsing in Perl
Back Tomorrow
Are you wanting to learn PHP?
2674 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2010: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 344596 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho