- ホーム >
- MTエンジニアブログ >
- Perl >
- Perlの勧め(1) Class::Accessor::Fastを使おう
Perlの勧め(1) Class::Accessor::Fastを使おう
onagataniです こんにちわ。
今回から数回に分けて自分のお勧めするモジュールを紹介したいと思います。
内容がモダンじゃない!と思う方もいるかもですが自分の好きなモジュールを紹介しますので最新の技術が知りたい方は見ないように...。
一回目は「Class::Accessor::Fast」です。
これはなにかというとPerlでアクセサを自動生成するモジュールです。
たとえば、下記のような場合にとても便利です。
MyClass.pm
package MyClass;
use strict;
use warnings;
sub new {
my ($class, $args) = @_;
my $self = {
address => $args{address},
blog => $args{blog},
};
return bless $self, $class;
}
sub address {
my ($self, $address) = @_;
if ($address){
$self->{address} = $address;
}
return $self->{address};
}
sub blog {
my ($self, $blog) = @_;
if ($blog){
$self->{blog} = $blog;
}
return $self->{blog};
}
1;
__END__
これを
package MyClass; use strict; use warnings; use base qw/Class::Accessor::Fast/; __PACKAGE__->mk_accessors(qw/ address blog /); 1; __END__
このように書くことができます。
アクセサを自動生成するほかにnewメソッドも作ってくれるのでとっても便利。
(newはほとんどの場合オーバーライドすることになると思いますが)
使い方も一緒です。
#!/usr/bin/perl
use strict;
use warnings;
use MyClass;
use Perl6::Say;
my $obj = MyClass->new({
address => 'tokyo',
blog => 'wordpress',
});
say $obj->address;
say $obj->blog;
$obj->address('obihiro');
$obj->blog('mt');
say $obj->address;
say $obj->blog;
結果
perl test.pl
tokyo
wordpress
obihiro
mt
というわけでコードも短くなるし読みやすくなるのでお勧めします。
投稿者 onagatani : 04/10
新着記事
- [2011-09-30]YAPC::Asia 2011
- [2011-08-20]札幌MySQL勉強会に参加してきた(1)
- [2011-07-27]YAPC::Asia 2011への遠方からの交通費を負担!「遠方からの参加者支援制度」に協賛しました
- [2011-07-20]Perlでマ◯オを作ってみた - Hokkaido Perl Mongers #5 に参加してきました
- [2011-06-14]オープンソースカンファレンス2011 Hokkaido に参加してきました























