2011年8月5日金曜日

開発環境

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

『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也、田中 慎司、吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9) の11章(オブジェクト入門), 11.11(練習問題)、1を解いてみる。

 

1.

コード(TextWrangler)

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

{ package Animal;
  sub speak{
    my $class = shift;
    print "a $class goes ", $class->sound, "!\n";
  }
}

{ package Cow;
  @Cow::ISA = qw(Animal);
  sub sound{ 'moooo' }
}

{ package Horse;
  @Horse::ISA = qw(Animal);
  sub sound{ 'neigh' }
}

{ package Sheep;
  @Sheep::ISA = qw(Animal);
  sub sound{ 'baaaah' }
}

{ package Mouse;
  @Mouse::ISA = qw(Animal);
  sub sound{ 'squeak' }
  sub speak{
    my $class = shift;
    $class->SUPER::speak;
    print "[but you can barely hear it!]\n";
  }
}

my @animals = ();
print "1つ以上の小動物(Cow, Horse, Sheep, Mouse)".
      "の名前を入力してください\n";
while(<>){
  chomp($_);
  if(/^(Cow|Horse|Sheep|Mouse)$/){
    push @animals, $_;
  }else{
    last;
  }
}

foreach (@animals){
  $_->speak;
}

入出力結果(Terminal)

0 コメント:

コメントを投稿