Catalyst のソースを読んでいると Class::Data::Accessor と Class:Data::Inheritable が出てくる。つかわれかたは、ほとんど同じに見えるので、ちょっとソースを読んでみた。 読んでみると Class::Data::Accessor のほうは、オブジェクトメソッドとして呼ばれたときに、オブジェクトのデータにアクセスする。 こんな感じ。 use strict; use warnings; use base qw/Class::Data::Accessor Class::Data::Inheritable/; main->mk_classaccessor('hoge'); # Class::Data::Accessor main->mk_classdata('fuga'); # Class::Data::Inheritable main->hoge