Damian ConwayとMichael G SchwernによるPerlのモジュールClass::Data::Inheritableを使うと、継承できるクラス変数をパッケージに追加できます。数年前にいったいどういう方法なのかとコードを読んだとき、なるほどこの手があったかと舌を巻いたものです。クロージャを使っているのです。クロージャは無名のオブジェクトだとSchemeで唱えられていますが、それを実感したときでした。 Perlのクラスはオブジェクトではなく、単なるパッケージ名にしかすぎません。それにクラス変数を載せて継承させようとしても、工夫がいります。そこに無名オブジェクトであるクロージャを使うのは、エレガントで格好いいなぁと思ったものでした。 PerlのMVCフレームワークのCatalystのソースを読んでいたら、このモジュールを使っているのを見て、ふとそのときのことを思い出したのでし