Perl/ライブラリ・モジュールとオブジェクト指向

出典: フリー教科書『ウィキブックス(Wikibooks)』

プログラミング > Perl > ライブラリ・モジュールとオブジェクト指向

目次

[編集] ライブラリ・モジュール

[編集] プラグマ

[編集] 標準ライブラリ

[編集] CPAN

[編集] ライブラリを作成する

[編集] Perlとオブジェクト指向

オブジェクト指向そのものについてはここでは扱いませんのでオブジェクト指向やJava、Smalltalk等についての文献を参照して下さい。

Perlでオブジェクト指向プログラミングを行う場合にも実行環境等を調整する必要はありません。バージョン5以降のPerlでは特別な準備をすることなくそのままオブジェクト指向の機能が使えます。

Perlでオブジェクト指向を扱う場合にも、一般にオブジェクト指向で禁止されることも多い「多重継承」や「他のクラスからの直接のメンバアクセス」等の振る舞いが許容されます。これはPerlのオブジェクト指向が純粋なオブジェクト指向プログラミング言語のそれと方向性を別にしていることを示唆しています。Perlのプログラミングにおいてオブジェクト指向を導入した場合でもそれによって制限が生じることはほとんどありません。振る舞いに制限を加えることによってオブジェクト指向のメリットを確保しようとする多くのオブジェクト指向プログラミング言語とは対極に、Perlのオブジェクト指向はほとんどの局面において「機能の追加」に終始します。

[編集] オブジェクト指向Perlの前提知識

オブジェクト指向Perlを理解するにはリファレンスとライブラリ・モジュールについての知識が不可欠です。

[編集] オブジェクト指向Perlの記述例

典型的なオブジェクト指向Perlのコードは以下のようなものです。以下の記述をベースにオブジェクト指向Perlについて説明します。

コード
package MyClass;

use strict;
use warnings;

use OtherClass;
use SomeClass;

use base qw(OtherClass SomeClass);

sub new {
  my $class = shift;
  my %args = @_;
  my $obj = { %args };
  bless $obj, $class;
  $obj->init();
  return $obj;
}

sub init {
  my $self = shift;
  $self->do_something();
}

sub run {
  my $self = shift;
  do_anything();
}

package main;

my $obj = MyClass->new();
$obj->run();


[編集] オブジェクト

通常newという関数でオブジェクトを返します(インスタンス)。Perlでいうオブジェクトとは、簡単に言うと所属しているクラス(パッケージ)を知っているリファレンスです。

[編集] クラス

クラスの宣言はpackage宣言によって行います。これはライブラリ・モジュールがパッケージを宣言するのと文法的には全く同じです。

[編集] メソッド

メソッドの定義は関数定義と同じsubによって行われます。

[編集] メンバ

このページ「Perl/ライブラリ・モジュールとオブジェクト指向」は、書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にノートへどうぞ。
ヘルプ