start page | rating of books | rating of authors | reviews | copyrights

Learning Perl on Win32 Systems

Learning Perl on Win32 SystemsSearch this book
Previous: 2.6 Scalar Operators and Functions Chapter 2
Scalar Data
Next: 2.8 Output with print
 

2.7 <STDIN> as a Scalar Value

At this point, if you're a typical code hacker, you're probably wondering how to get a value into a Perl program. Here's the simplest way. 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, but unless you do something odd, it means the command console that invoked your program. If there's nothing waiting to be 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).

The string value of <STDIN> typically has a newline on the end of it. Most often, you'll want to get rid of that newline right away (there's a big difference between hello and hello\n ). It is at this point that our friend, the chomp() function, comes to the rescue. A typical input sequence goes something like this:

$a = <STDIN>; # get the text 

chomp($a);    # get rid of that pesky newline

A common abbreviation for these two lines is:

chomp($a = <STDIN>);

The assignment inside the parentheses continues to refer to $a , even after it has been given a value with <STDIN> . Thus, the chomp() function is working on $a . (This is true in general about the assignment operator - an assignment expression can be used wherever a variable is needed, and the actions refer to the variable on the left side of the equal sign.)


Previous: 2.6 Scalar Operators and Functions Learning Perl on Win32 Systems Next: 2.8 Output with print
2.6 Scalar Operators and Functions Book Index 2.8 Output with print