



パッケージのプロパティとアクセサ(プロパティにアクセスするメソッド)を自動定義する。
使用例:
package foo1;
use base qw(Class::Accesor::Fast);
foo1->mk_accessors(qw(faa)); # RWアクセサを定義
foo1->mk_ro_accessors(qw(fbb)); # ROアクセサ(setter定義なしのアクセサ)を定義
foo1->mk_wo_accessors(qw(fcc)); # WOアクセサ(getter定義なしのアクセサ)を定義(注1)
package main;
my $foo = new foo1( {fbb => 20} ); # $foo->{'fbb'}に20が代入される(注2)
$foo->faa(10); # faa setter : $foo->['faa'} に10が代入される
print $foo->faa,"\n"; # faa getter:$foo->{'faa'}が取得される
print $foo->fbb,"\n"; # fbb getter:fbb はROなので$foo->fbb(20)はエラー
$foo->fcc(30); # fcc setter:fccはWOなので$foo->fccはエラー
注1:パッケージ内でも$foo->fcc はエラーになる。
getterが定義されていないだけなので、参照するときは、$foo->{'fcc'} で参照できる。
注2:RO アクセサでも、newのパラメタからは設定可能。
もっとも、setterが定義されていないだけなので、$foo->{'fbb'}に代入すれば書換え出来てしまう。
このパラメタの処理は、Class::Accessor::Fastのコンストラクタが行っている。継承クラスでコンストラクタをオーバーライドした場合は、Class::Accessor::Fastのコンストラクタを正しく呼び出さないと処理されなくなる。