blessを使ったオブジェクト指向 - 基本

クラスの宣言

 package Foo;
 (略)
 1;

コンストラクタとインスタンスの生成

 sub new {
     my $class = shift;
     bless {@_}, $class;
 }
 #!/usr/bin/perl
 use Foo;
 $foo = Foo->new(name => 'taro', age => 18)
 print $foo->{name}; # "taro"

デストラクタ

 sub DESTROY {
     my $self = shift;
     $self->{fh}->close;
 }

継承

 package Foo::Bar;
 use parent 'Foo';
 (略)
 1;

最近はuse baseじゃなくて、use parent推奨らしい。

コンストラクタで親クラスのコンストラクタを呼ぶ

 sub new {
     my $class = shift;
     my $self = $class->SUPER::new(@_);
     $self->{foo} = 'var';
     return $self;
 }

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2011-09-20 (火) 01:53:32