1 ffd9a51f 2023-08-04 jrmu #!/usr/bin/perl
3 ffd9a51f 2023-08-04 jrmu # Modify the program from the previous exercise to print extra
4 ffd9a51f 2023-08-04 jrmu # debugging information as it goes along, such as the secret number
5 ffd9a51f 2023-08-04 jrmu # it chose. Make your change such that you can turn it off, but
6 ffd9a51f 2023-08-04 jrmu # yoru program emits no warnings if you turn it off. If you are
7 ffd9a51f 2023-08-04 jrmu # using Perl 5.10 or later, user the // operator. Otherwise, use
8 ffd9a51f 2023-08-04 jrmu # the conditional operator.
11 ffd9a51f 2023-08-04 jrmu use warnings;
15 ffd9a51f 2023-08-04 jrmu my $secret = int(1 + rand 100);
16 ffd9a51f 2023-08-04 jrmu my $debug = $ENV{DEBUG} // 1;
18 ffd9a51f 2023-08-04 jrmu print "Guess (1-100): ";
19 ffd9a51f 2023-08-04 jrmu while (chomp($guess = <>) && $guess !~ /(exit|quit)|\A\z/) {
20 ffd9a51f 2023-08-04 jrmu print "Secret: $secret\n" if $debug;
21 ffd9a51f 2023-08-04 jrmu if ($guess == $secret) {
22 ffd9a51f 2023-08-04 jrmu print "Correct!\n";
24 ffd9a51f 2023-08-04 jrmu } elsif (defined($guess) && $guess < $secret) {
25 ffd9a51f 2023-08-04 jrmu print "Too low!\n";
26 ffd9a51f 2023-08-04 jrmu } elsif (defined($guess) && $guess > $secret) {
27 ffd9a51f 2023-08-04 jrmu print "Too high!\n";
29 ffd9a51f 2023-08-04 jrmu print "Guess (1-100): ";
31 ffd9a51f 2023-08-04 jrmu print "Exiting!\n";