13.1 オブジェクトを作成する
- 単純なコンストラクタ
sub new { my $class = shift; my $self = {}; bless($self, $class); return $self; }
- 初期化とメモリ割当/blessを分離する方法
sub new { my $class = shift; # 作成するオブジェクトのクラス名を取得する my $self = {}; # 新しいメモリを割り当てる bless($self, $class); # オブジェクトをクラスにブレスする $self->_init(@_); # 残りの引数を使用して、_initを呼び出す return $self; } # フィールドを初期化するための"プライベート"メソッド sub _init { my $self = shift; $self->{START} = time(); $self->{AGE} = 0; if (@_) { my %extra = @_; @$self{keys %extra} = values %extra; } }