Hello Greg, > Thanks for you comments. Is this the best way then? Seems to work, but I'm > curious what could be any better..
Your version is fine. Here's mine, just so you have another take on how to do some things. Among a few other things, I added checking for so that the guess has to be a number between 1 and 100 (this was not checked in your version, so when you did $guess > $solution, the script would give an error if the person entered a letter, for example). #!/usr/bin/perl -w #use Math::Random; use strict; use warnings; my $play = 1; while ($play) { print "\nI'm thinking of a number between 1 and 100.\n"; print "Try and guess which number it is, and you might win something!\n"; # I don't have Math::Random. Uncomment the line below and the 'use' line # above, and comment the next one if you have it and want to use it. #my $solution = random_uniform_integer(1, 1, 100); my $solution = int(rand(100)) + 1; my $guess = undef; my $tries = 0; while (!$guess || $guess != $solution) { #print "\$solution = $solution\n"; print "Guess ? (1-100): "; chomp($guess = <STDIN>); if ($guess =~ /^\d+$/ && $guess >= 1 && $guess <= 100) { if ($guess > $solution) { print "$guess is too HIGH!\n"; } elsif ($guess < $solution) { print "$guess is too LOW!\n"; } } else { print "Guess is not valid!\n"; } $tries++; } my $try_word = ($tries == 1 ? 'try' : 'tries'); print "$guess is correct, YAY! It only took you $tries $try_word!\n"; print "You win $tries more minutes of free time!\n"; print "Play again? (y/n): "; chomp(my $answer = <STDIN>); if ($answer !~ /^y/i) { $play = 0; } } That's it... Good luck with your Perl programming! J-S -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>