* blessを使ったオブジェクト指向 - 基本[#yefcf25c]
** クラスの宣言 [#y99f41e8]
package Foo;
(略)
1;
** コンストラクタとインスタンスの生成 [#t0c238d8]
sub new {
my $class = shift;
bless {@_}, $class;
}
#!/usr/bin/perl
use Foo;
$foo = Foo->new(name => 'taro', age => 18)
print $foo->{name}; # "taro"
** デストラクタ [#wbfe4f23]
sub DESTROY {
my $self = shift;
$self->{fh}->close;
}
** 継承 [#ke30bd5b]
package Foo::Bar;
use base 'Foo';
use parent 'Foo';
(略)
1;
最近はuse baseじゃなくて、use parent推奨らしい。
** コンストラクタで親クラスのコンストラクタを呼ぶ [#f78020cd]
sub new {
my $class = shift;
my $self = $class->SUPER::new(@_);
$self->{foo} = 'var';
return $self;
}