2011年7月7日木曜日

開発環境

  • Mac OS X Snow Leopard (OS)
  • TextWrangler(Text Editor) (いずれはBBEditを入手したい!)
  • Script言語:Perl

『初めてのPerl 第5版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-427-9) の15章(スマートマッチとgiven-when), 15.6(練習問題)、1を解いてみる。

 

1.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/perl
use 5.010;
use strict;
use warnings;

my $num=int(1+rand 100);
while(<>){
  given($_){
    when(/quit|exit|^\s*$/i){
      print "last\n";last;}
    when($_>$num){print "Too high\n";}
    when($_<$num){print "Too low\n";}
    when($==$num){print "last\n";last;}
    default{print "数値を入力してください\n";}
    }
}

まずgivenを使って作成した数当てプログラムで遊ぶ。

入出力結果(Ternimal)

数値以外を入力すると・・・

入出力結果(Ternimal)

whenの最初で数値かどうか確認する必要がありそうなので書き換える。(あと遊ぶ必要ないように最初にランダムな数を表示しておく)

コード(TextWrangler)

#!/usr/bin/perl
use 5.010;
use strict;
use warnings;

my $num=int(1+rand 100);
print "答え: $num\n";
while(<>){
  given($_){
    when(/quit|exit|^\s*$/i){
      print "last\n";last;}
    when(!/^\d+$/){
      print "数値を入力してください\n";}
    when($_>$num){print "Too high\n";}
    when($_<$num){print "Too low\n";}
    when($==$num){print "last\n";last;}
    default{}
    }
}

入出力結果(Ternimal)

quite, exit, 空白で終了するかも確認。

入出力結果(Ternimal)

確認できた!

ファイルの用意が必要な場合はO'Reilly Japan - 初めてのPerl 第5版の関連ファイルのプログラム例に含まれているものを使用しています。

0 コメント:

コメントを投稿