アクセサ[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 -wuse strict;
use DTO;
my $objDTO = DTO->new();
$objDTO->setAge(35);
print $objDTO->getAge()."\n";
$objDTO->setName('anigon');
print $objDTO->getName()."\n";
exit;