開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也、田中 慎司、吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の11章(オブジェクト入門), 11.11(練習問題)1を解いてみる。
1.
やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))
コード(TextWrangler)
#!/usr/bin/env perl use strict; use warnings; { package Animal; sub speak{ my $class = shift; print "a $class goes ", $class->sound, "!\n"; } } { package Cow; our @ISA = qw(Animal); sub sound { "moooo" } } { package Horse; our @ISA = qw(Animal); sub sound { "neigh" } } { package Sheep; our @ISA = qw(Animal); sub sound { "baaaah" } } { package Mouse; our @ISA = qw(Animal); sub sound { "squeak" } sub speak{ my $class = shift; Animal::speak($class); print "[but you can barely hear it!]\n"; } } my @backyard = (); while(1){ print "小動物(Cow/Horse/Sheep/Mouse)を入力\n"; chomp(my $animal = <STDIN>); unless($animal =~ /^(Cow|Horse|Sheep|Mouse|\s*)$/){ print "入力内容を確認してください。\n"; next; } last if $animal =~ /^\s*$/; push @backyard, $animal; } for(@backyard){ $_->speak; }
入出力結果(Terminal)
$ perl sample.pl 小動物(Cow/Horse/Sheep/Mouse)を入力 Cow 小動物(Cow/Horse/Sheep/Mouse)を入力 Horse 小動物(Cow/Horse/Sheep/Mouse)を入力 Sheep 小動物(Cow/Horse/Sheep/Mouse)を入力 Mouse 小動物(Cow/Horse/Sheep/Mouse)を入力 Dog 入力内容を確認してください。 小動物(Cow/Horse/Sheep/Mouse)を入力 Sheep 小動物(Cow/Horse/Sheep/Mouse)を入力 Mouse 小動物(Cow/Horse/Sheep/Mouse)を入力 a Cow goes moooo! a Horse goes neigh! a Sheep goes baaaah! a Mouse goes squeak! [but you can barely hear it!] a Sheep goes baaaah! a Mouse goes squeak! [but you can barely hear it!] $
0 コメント:
コメントを投稿