- 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;
後は好きなメソッドを追加するだけですね。
Perlゼミ

