初めてのPerl 第10章

練習問題の回答をメモ。

ex10-1
#!/usr/bin/perl
use strict;

my $answer = int(1 + rand 100);
#print "The answer is <<$answer>>.\n";

while (1) {
  print "Choose a number between 1 to 100: ";
  chomp(my $try = <STDIN>);
  if ($try =~ /quit|exit|^\s*$/i) {
    last;
  }
  elsif ($try == $answer) {
    print "Bingo!\n";
    last;
  }
  elsif ($try < $answer) {
    print "Too low\n";
    redo;
  }
  else {
    print "Too high\n";
    redo;
  }
}

この場合、redo は意味無かったな…。

反省点

quit か exit、または空白行で終了するという条件を忘れていた。きちんと条件に漏れが無いか確認してから解答を見よう。