2011年6月20日月曜日

開発環境

  • 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) の10章(さまざまな制御構造), 10.11(練習問題)、2を解いてみる。

 

2.

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

perl 5.10を使っている場合(//演算子を使う)

コード(TextWrangler)

#!/usr/bin/perl

use 5.010;

use strict;
use warnings;

my $num=int(1 + rand 100);

# オフにするには$ENV{DEBUG}が偽になるように設定
my $debug=$ENV{DEBUG} // 1;

if($debug){
  print "秘密の数: $num\n"
  }

while(<>){
  if(/quit|exit|^\s*$/i ||
      $_==$num){
    print "last\n";
    last;
    }elsif($_>$num){
    print "Too high\n";
    }elsif($_<$num){
    print "Too low\n";
    }
}

入出力結果(Ternimal)

デバッグ情報の表示をオンのまま(環境変数が未定義)場合

デバック情報の表示をオフの場合。

まず環境変数を偽(0)に設定。

上記のプログラムを実行

perl 5.10を使っていなくて三項演算子を使う場合。

コード(TextWrangler)

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

my $num=int(1 + rand 100);

# オフにするには$ENV{DEBUG}が偽になるように設定
my $debug=defined $ENV{DEBUG}?$ENV{DEBUG}:1;

if($debug){
  print "秘密の数: $num\n"
  }

while(<>){
  if(/quit|exit|^\s*$/i ||
      $_==$num){
    print "last\n";
    last;
    }elsif($_>$num){
    print "Too high\n";
    }else{
    print "Too low\n";
    }
}

入出力結果(Terminal)

まず、上記で設定した環境変数を未定義に設定しなおす。

デバッグ情報の表示をオンのまま(環境変数が未定義)場合

デバック情報の表示をオフの場合。

まず環境変数を偽(0)に設定。

上記のプログラムを実行

とりあえず、p.127の6.5(%ENVハッシュ)のBourneシェルの場合を参考にしてみたけど、環境変数の設定の仕方はこれであってるのかな?

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

0 コメント:

コメントを投稿