frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

アクセサ[2]。

昨日のアクセサ、結局実装してみたら、やっぱり便利♪

遊びでついでに、get名前, set名前 で取れるように変えてみたのでメモ。

どうでもいいけど、いつの間に

会社の先輩おじいさんのブログからリンクされてるんだ!(笑)

今日、会社の同僚の王子に言われて初めて気付いたよ…orz

って、リーダーで追跡されてるのか(笑)

じゃあ、追跡し返しちゃえっ。

DTO.pm

package DTO;

use strict;

use warnings;

use Carp;

__PACKAGE__->_makeAccesor(qw/age name tel address/);

sub new {

my $me = shift;

my $param = {

};

bless $param, $me;

}

sub _makeAccesor {

my $me = shift;

no strict 'refs';

my $methodName = '';

my $field = '';

foreach $field (@_) {

$methodName = ucfirst $field;

*{"set${methodName}"} = sub {

$_[0]->{$field} = $_[1];

};

*{"get${methodName}"} = sub {

return $_[0]->{$field};

};

}

}

1;

・test.pl

#!/usr/bin/perl -w

use strict;

use DTO;

my $objDTO = DTO->new();

$objDTO->setAge(35);

print $objDTO->getAge()."\n";

$objDTO->setName('anigon');

print $objDTO->getName()."\n";

exit;