On Mon, 5 Sep 2011 14:10:35 -0500 Chris Stinemetz <chrisstinem...@gmail.com> wrote:
> In exercise 3-3 from the lama book. > > How do you make sure the user enters a number 1 thru 7? > > The simple program is: > > #!/usr/bin/perl > use warnings; > use strict; > my @names = qw/ fred betty barney dino wilma pebbles bamm-bamm /; > print "Enter some numbers from 1 to 7, one per line, then press Ctrl-Z:\n"; > chomp(my @numbers = <STDIN>); > foreach (@numbers) { > print "$names[ $_ -1]\n"; > } > One option would be to check that $_ matches the regular expression /\A[1-7]\z/ , where \A is the start of the string, [1-7] is any character from 1 to 7 and \z is the end of the string. So your program becomes: #!/usr/bin/perl use warnings; use strict; my @names = qw/ fred betty barney dino wilma pebbles bamm-bamm /; print "Enter some numbers from 1 to 7, one per line, then press Ctrl-Z:\n"; chomp(my @numbers = <STDIN>); foreach (@numbers) { if ($_ =~ /\A[1-7]\z/) { print "$names[ $_ -1]\n"; } else { warn "Incorrect number - '$_'"; } } I should also note that one would use Ctrl+D instead of Ctrl+Z for EOF in UNIX-land. Regards, Shlomi Fish > Just curious.. Thanks. -- ----------------------------------------------------------------- Shlomi Fish http://www.shlomifish.org/ Funny Anti-Terrorism Story - http://shlom.in/enemy Chuck Norris is his own boss. If you hire him, he’ll tell your boss what to do. Please reply to list if it's a mailing list post - http://shlom.in/reply . -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/