Danny wrote: > Hi list, Hello,
> Hope this is not too simple or a stupid question: > > I have a slight problem with a loop. It is a simple numbers guessing game. It > works fine, but when I run this script, it gives me "Too low" immediately > after > the prompt. What should I do to get the last "else" statement displayed first? > > Following is the code: > > #!/usr/bin/perl -w > > $upper = 20 ; > $lower = 1 ; > $target = 11 ; > > while ( ) > { > if ( $guess > $target ) > { > print "Too high\n" ; > $guess = <STDIN> ; > } > elsif ( $guess < $target ) > { > print "Too low\n" ; > $guess = <STDIN> ; > } > elsif ( $guess == $target ) > { > print "You guessed right\n" ; > exit ; > } > else > { > print "Please choose a number between ${lower} and ${upper}\n" ; > $guess = <STDIN> ; > } > } If you want a simple loop: #!/usr/bin/perl use warnings; use strict; my $upper = 20; my $lower = 1; my $target = 11; { print "Please choose a number between $lower and $upper\n"; chomp( my $guess = <STDIN> ); $guess > $target and print "Too high\n" and redo; $guess < $target and print "Too low\n" and redo; print "You guessed right\n" and exit; } __END__ :-) John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>