Class::Accessor::Fastを使ってアクセサを作る

Class::Accessor::Fastはクラスにアクセサを提供するモジュール。

 package MyClass;
 use base qw/Class::Accessor::Fast/;
 __PACKAGE__->mk_accessors(qw/name address/);
#!/usr/local/bin/perl

my $obj = MyClass->new( { name => 'taro', address => 'tokyo'} );
print $obj->name, "\n"; # taro
$obj->name('jiro');
print $obj->name, "\n"; # jiro
  • $obj->name('jiro')は、$obj->set('name','saburo')でも良い。
  • Class::Accessor::Fastはnew()を提供するので、自分でnew()を書く必要はないが、
    sub new { $self = shift->SUPER::new(@_); $self->name('default'); return $self } 
    あるいは
    sub new { $self = bless {}, shift; $self->name('default'); return $self; }
    のように自分で書いても良い。
  • また、$obj2 = $obj->new() のようなnew()によるインスタンス生成も可能。

参考

http://search.cpan.org/perldoc?Class::Accessor


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2009-06-28 (日) 12:44:02 (3396d)