Class::Accessor::Fast とかの継承の罠
package Parent; use parent qw/Class::Accessor::Fast/;
な Parent クラスがある場合に、これを継承したクラス Child をつくる場合に
package Child; use parent qw/Parent/; __PACKAGE__->mk_accessors(qw/foo/);
などとしてしまいがちだが、基本的に Parent の作者は、C::A::Fast をつかっているところは別に仕様だとは考えていないので、途中で不意に Class::Accessor::Fast から Moose に転向したりする場合がある。
というわけで、そういう場合には
package Child; use parent qw/Parent/; use Class::Accessor::Lite; Class::Accessor::Lite->mk_accessors(qw/foo/);
のように、Class::Accessor::Lite をつかうとよいでしょう。