そういえばPerlでオブジェクト指向プログラミングするとき、インスタンスのデフォルト値ってどうやって設定するんだろうと思って調べてみた。どうやらデフォルト値を設定したハッシュと、コンストラクタの引数として受け取ったハッシュをマージして、そいつにblessしてやればいいみたい。 package Person { use strict; use warnings; use utf8; # ここでデフォルト値を設定 my %def = (foo => 'Sawada', bar => 'Takehiro'); use Class::Accessor::Lite ( new => 0, # newを自前で作るなら0 rw => [qw/foo bar/], ); sub new { my $class = shift; my $args = ref $_[0] ? $_[0] : +{@_}; #