* Class::Accessor::Fastを使ってアクセサを作る [#nc099cf8]

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; }のように自分で書いても良い。
- 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()によるインスタンス生成も可能。

** 参考 [#e387153b]
http://search.cpan.org/perldoc?Class::Accessor

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