Class::Accessor

コンストラクタとか毎回書くのが面倒で、何とかならないかなーと思っていたところでこれを発見。おお、便利だ!

use base qw/Class::Accessor/;
__PACKAGE__ -> follow_best_practice;
__PACKAGE__ -> mk_accessors( qw ( foo ) );
__PACKAGE__ -> new ({ foo => 45 });    # 初期値を代入

sub test{
   my $self = shift;  # オブジェクトへのリファレンス

   # getアクセサ
   print $self -> get_foo();   # 45
   
   # setアクセサ
   $self -> set_foo(30);
   print $self -> get_foo();   # 30   
}

follow_best_practiceってするとget_,set_を付けないと駄目になるらしいよ。これは無いと気持ち悪いので、私は必須!