Section A.2. Answers to Chapter 3 Exercises


A.2. Answers to Chapter 3 Exercises

  1. Here's one way to do it:

         print "Enter some lines, then press Ctrl-D:\n"; # or maybe Ctrl-Z     @lines = <STDIN>;     @reverse_lines = reverse @lines;     print @reverse_lines; 

    or, even more simply:

         print "Enter some lines, then press Ctrl-D:\n";     print reverse <STDIN>; 

    Most Perl programmers would prefer the second one as long as you don't need to keep the list of lines for later use.

  2. Here's one way to do it:

         @names = qw/ fred betty barney dino wilma pebbles bamm-bamm /;     print "Enter some numbers from 1 to 7, one per line, then press Ctrl-D:\n";     chomp(@numbers = <STDIN>);     foreach (@numbers) {       print "$names[ $_ - 1 ]\n";     } 

    We have to subtract one from the index number so the user can count from 1 to 7 even though the array is indexed from 0 to 6. Another way to accomplish this would be to have a dummy item in the @names array, like this:

         @names = qw/ dummy_item fred betty barney dino wilma pebbles bamm-bamm /; 

    Give yourself extra credit if you checked to make sure that the user's choice of index was in the range 1 to 7.

    Here's one way to do it if you want the output all on one line:

         chomp(@lines = <STDIN>);     @sorted = sort @lines;     print "@sorted\n"; 

    To get the output on separate lines, do it this way:

         print sort <STDIN>; 



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