2011年8月9日火曜日

開発環境

  • 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) の14章(オブジェクトに関する高度なトピック), 14.7(練習問題)、1を解いてみる。

 

1.

コード(TextWrangler)

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

{ package MyDate;
  use Carp;
  my %methods = (date=>3, month=>4, year=>5);
  my @plus = qw(0 0 0 0 1 1900 0 0 0);
  sub new{bless{}, $_[0]}
  sub AUTOLOAD{
    our $AUTOLOAD;
    (my $method = $AUTOLOAD) =~ s/.*:://s;
    if(!$methods{$method}){
      carp "$AUTOLOAD: メソッド名が分かりません";
      return;
    }
    my $index = $methods{$method};
    return (localtime)[$index] + $plus[$index];
  }
}

# 上記を利用して日、月、年の値を出力するスクリプト
my $my_date = MyDate->new();
print $my_date->date."日\n";
print $my_date->month."月\n";
print $my_date->year."年\n";

入出力結果(Terminal)

本章を何度も読み直しつつ、ググりつつ、解答を見つつしないと解答できなくなってきた。まだ1周目なので、この先の周ではすらすら解けるようになっていたい!

0 コメント:

コメントを投稿