From: "Anthony Beaman" <[EMAIL PROTECTED]> > 2. Write a program that reads a number and then a list of strings (all > on separate lines), and then prints one of the lines from the list as > selected by the number. > > One way to do this is: > print "Enter the line number: "; chomp($a = <STDIN>); > print "Enter the lines, end with ^Z:\n"; @b = <STDIN>; > print "Answer: $b[$a-1]"; > The first line prompts for a number, reads it from standard input, and > removes that pesky newline. The second line asks for a list of > strings, then uses the <STDIN> operator in a list context to read all > of the lines until end-of-file into an array variable. The final > statement prints the answer, using an array reference to select the > proper line. Note that we don't have to add a newline to the end of > this string, because the line selected from the @b array still has its > newline ending. You'll need to type CTRL-Z at the console to indicate > an end-of-file. > > I'm confused on the [$a-1] part of the last line. Why not $b[$a] > instead?
Because arrays are indexed from 0. So the first line entered is in $b[0] :-) Jenda ===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz ===== When it comes to wine, women and song, wizards are allowed to get drunk and croon as much as they like. -- Terry Pratchett in Sourcery -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]