初めてのPerl 第10章 様々な制御構造 練習問題1

乱数を生成し、それをユーザーに当ててもらうプログラムです。exit、quit、空白の入力があった際と、数字が当たった際にプログラムを終了させています。

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;

#ランダムな数値を生成。
my $random = int(1 + rand 100);

while(<>){
  if($_ =~ /^\s/ ){
    last;
  }elsif($_ =~ m/exit|quit| /){
    last;
  }elsif($_ == $random){
    print "MATCH\n";
    last;
  }elsif($_ > $random){
    print "Too High\n";
  }elsif($_ < $random){
    print "Too low\n";
  }else{
    last;
  }
}

=pod
#こちらも上記と同じ動きをします。
while(<>){
  last if $_ =~ m/^\s/;
  last if $_ =~ m/exit|quit| /;
  print "Too High\n" if $_ > $random;
  print "Too Low\n"  if $_ < $random;

  if ($_ == $random){
    print "MATCH\n";
    last;
  }
}
=cut

実行コマンドは以下の通りです。

$ ./practice1

数字がマッチした時の結果です。

50
Too High
40
Too High 
30
Too low
35
MATCH

exitが入力された時の結果です。

50
Too low
60
Too low
exit
$(コマンドの入力に戻る)

※ifを一文で書くコードも考える。