2012年7月2日月曜日

開発環境

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

2.

コード(TextWrangler)

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

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

sub f{
  my $num = shift;
  given($num){
    when(/^\s*$/){last;}
    when(!/^\d+$/){say "NaN";}
    when($num % 3 == 0){print "Fizz ";continue;}
    when($num % 5 == 0){print "Bin ";continue;}
    when($num % 7 == 0){print "Sausage";continue;}
    default{print("\n")}
  }
}
for(1..105){
  print "$_: ";
  f $_;
}

入出力結果(Terminal)

$ ./sample.pl
1: 
2: 
3: Fizz 
4: 
5: Bin 
6: Fizz 
7: Sausage
8: 
9: Fizz 
10: Bin 
11: 
12: Fizz 
13: 
14: Sausage
15: Fizz Bin 
16: 
17: 
18: Fizz 
19: 
20: Bin 
21: Fizz Sausage
22: 
23: 
24: Fizz 
25: Bin 
26: 
27: Fizz 
28: Sausage
29: 
30: Fizz Bin 
31: 
32: 
33: Fizz 
34: 
35: Bin Sausage
36: Fizz 
37: 
38: 
39: Fizz 
40: Bin 
41: 
42: Fizz Sausage
43: 
44: 
45: Fizz Bin 
46: 
47: 
48: Fizz 
49: Sausage
50: Bin 
51: Fizz 
52: 
53: 
54: Fizz 
55: Bin 
56: Sausage
57: Fizz 
58: 
59: 
60: Fizz Bin 
61: 
62: 
63: Fizz Sausage
64: 
65: Bin 
66: Fizz 
67: 
68: 
69: Fizz 
70: Bin Sausage
71: 
72: Fizz 
73: 
74: 
75: Fizz Bin 
76: 
77: Sausage
78: Fizz 
79: 
80: Bin 
81: Fizz 
82: 
83: 
84: Fizz Sausage
85: Bin 
86: 
87: Fizz 
88: 
89: 
90: Fizz Bin 
91: Sausage
92: 
93: Fizz 
94: 
95: Bin 
96: Fizz 
97: 
98: Sausage
99: Fizz 
100: Bin 
101: 
102: Fizz 
103: 
104: 
105: Fizz Bin Sausage
$

0 コメント:

コメントを投稿