Blame


1 ffd9a51f 2023-08-04 jrmu #!/usr/bin/perl
2 ffd9a51f 2023-08-04 jrmu
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.
9 ffd9a51f 2023-08-04 jrmu
10 ffd9a51f 2023-08-04 jrmu use v5.10;
11 ffd9a51f 2023-08-04 jrmu use warnings;
12 ffd9a51f 2023-08-04 jrmu use strict;
13 ffd9a51f 2023-08-04 jrmu use utf8;
14 ffd9a51f 2023-08-04 jrmu
15 ffd9a51f 2023-08-04 jrmu my $secret = int(1 + rand 100);
16 ffd9a51f 2023-08-04 jrmu my $debug = $ENV{DEBUG} // 1;
17 ffd9a51f 2023-08-04 jrmu my $guess;
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";
23 ffd9a51f 2023-08-04 jrmu last;
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";
28 ffd9a51f 2023-08-04 jrmu }
29 ffd9a51f 2023-08-04 jrmu print "Guess (1-100): ";
30 ffd9a51f 2023-08-04 jrmu }
31 ffd9a51f 2023-08-04 jrmu print "Exiting!\n";