- Perl ›
- オブジェクト指向プログラミング ›
- here
クラスの作成
Perlでクラスを作成するにはpackage文を使います。
# Pointクラス package Point; # Foo::Barクラス package Foo::Bar;
モジュール
クラスをモジュールとして利用するには、クラス名に対応したファイルを作成します。「::」を「/」に変換して「.pm」を末尾につけます。
Point.pm Foo/Bar.pm
モジュールファイルの末尾には「1;」をつける必要があります。
# Point.pm package Point; 1;
# Foo/Bar.pm package Foo::Bar; 1;
これらのモジュールをPerlプログラムから読み込むサンプルです。「Point.pm」と「Foo/Bar.pm」は「lib」ディレクトリの中に配置してください。
ファイル配置
class.pl lib/Point.pm lib/Foo/Bar.pm
サンプルプログラム
# class.pl use strict; use warnings; use FindBin::Bin; use lib "$FindBin::Bin/lib"; # クラスの読み込み use Point; use Foo::Bar;
クラスの雛形
クラスの雛形を示しておきます。
1. クラスの雛形
以下がクラスの雛形になります。
package Book; use strict; use warnings; # コンストラクタ sub new { my $proto = shift; my $class = ref $proto || $proto; my $self = {}; bless $self, $class; $self->init( @_ ); return $self; } # オブジェクトの初期化 sub init { my ($self, @args) = @_; # 追加で行いたい処理 } # アクセッサ sub title { my $self = shift; if (@_) { my $old = $self->{title}; return $self->{title} = $_[0]; } else{ return $self->{ title }; } } sub author { my $self = shift; if (@_) { my $old = $self->{author}; return $self->{author} = $_[0]; } else{ return $self->{author}; } } 1;
後は好きなメソッドを追加するだけですね。