開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の15章(スマートマッチとgiven-when)、15.6(練習問題)5を解いてみる。
その他参考書籍
5.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.012;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
sub divisors {
my $number = shift;
my @divisors = ();
for(2..($number / 2)){
push @divisors, $_ unless $number % $_;
}
return @divisors;
}
given($ARGV[0]){
my $fav = 10;
when(/\D/){die "コマンドライン引数には数を指定してください。";}
my @divisors = divisors $_;
when([] ~~ @divisors){print "素数\n";continue;}
when(!(2 ~~ @divisors)){print "奇数\n";continue;}
when(2 ~~ @divisors){print "偶数\n";continue;}
when($fav ~~ @divisors){print "好きな数${fav}の倍数\n";continue;}
default {print "@divisors\n";}
}
入出力結果(Terminal)
$ ./sample.pl 99 奇数 3 9 11 33 $ ./sample.pl 100 偶数 好きな数10の倍数 2 4 5 10 20 25 50 $ ./sample.pl 101 素数 奇数 $ ./sample.pl 102 偶数 2 3 6 17 34 51 $ ./sample.pl 103 素数 奇数 $ ./sample.pl 104 偶数 2 4 8 13 26 52 $ ./sample.pl 105 奇数 3 5 7 15 21 35 $ ./sample.pl 106 偶数 2 53 $ ./sample.pl 107 素数 奇数 $ ./sample.pl 108 偶数 2 3 4 6 9 12 18 27 36 54 $ ./sample.pl 109 素数 奇数 $ ./sample.pl 110 偶数 好きな数10の倍数 2 5 10 11 22 55 $
0 コメント:
コメントを投稿