Section 2.7. Getting User Input


2.7. Getting User Input

At this point, you're probably wondering how to get a value from the keyboard into a Perl program. Here's the simplest way: use the line-input operator, <STDIN>.[]

] This is a line-input operator working on the filehandle STDIN, but we cant tell you about that until we get to filehandles (in Chapter 5).

Each time you use <STDIN> in a place where a scalar value is expected, Perl reads the next complete text line from standard input (up to the first newline) and uses that string as the value of <STDIN>. Standard input can mean many things; unless you do something uncommon, it means the keyboard of the user who invoked your program (probably you). If there's nothing waiting for <STDIN> to read (typically the case unless you type ahead a complete line), the Perl program will stop and wait for you to enter some characters followed by a newline (return).[*]

[*] To be honest, it's normally your system that waits for the input; Perl waits for your system. Though the details depend upon your system and its configuration, you can generally correct your mistyping with a backspace key before you press return since your system handles that, not Perl itself. If you need more control over the input, get the Term::ReadLine module from CPAN.

The string value of <STDIN> typically has a newline character on the end of it.[] So, you [] The exception is if the standard input stream somehow runs out in the middle of a line. But thats not a proper text file, of course.

     $line = <STDIN>;     if ($line eq "\n") {       print "That was just a blank line!\n";     } else {       print "That line of input was: $line";     } 

In practice, you don't often want to keep the newline, so you need the chomp operator.



Learning Perl
Learning Perl, 5th Edition
ISBN: 0596520107
EAN: 2147483647
Year: 2003
Pages: 232

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net