オブジェクト指向

オブジェクト指向プログラミングとは、プログラムを作成する際の手法の事です。
プログラムをオブジェクト(クラス)という独立した単位で作成し、データとふるまいを定義します。

説明の言葉を並べても理解しづらいと思います。
使っていくうちに、だんだんとわかるようになりますので、ご心配なく。

Perlによるオブジェクト指向は、パッケージ(名前空間機能)とリファレンスで実現しています。
まずは、パッケージから。
# 宣言方法
package foo;
# これで名前空間「foo」が宣言されます。
# ちなみに何も宣言しない場合、「main」という名前空間が使用されます。

package foo;
our $bar = 'Hello';
sub xxx{
	print $bar . "\n";
}
package main;
print $foo::bar . "\n"; # Helloと表示される。$bar変数へ直接アクセス。
foo::xxx(); # Helloと表示される。foo内のxxxを実行する。

次に、オブジェクト指向的に書いていきます。
まずは、例です。
my $obj = new foo(1,2,3); # オブジェクトを作成。
$obj->show(); # プロパティ(a,b,c)を表示。
$obj->set('d',4); # プロパティ「d」に4をセット。
$obj->show(); # プロパティ(a,b,c,d)を表示。

package foo;
sub new{
	my $this = shift;
	my ($a,$b,$c) = @_;
	my $self = { # プロパティ
		a => $a,
		b => $b,
		c => $c
	};
	bless($self,$this);
}
sub DESTROY{ # 必須ではないが、クラスが破棄されるときに実行される。
	print "This class is ended.\n";
}
sub show{ # プロパティ一覧を表示する。
	my $self = shift;
	print $_ . ":" . $self->{$_} . "\n" for (keys %{$self});
}
sub set{ # プロパティをセットする。
	my $self = shift;
	my ($p,$v) = @_;
	$self->{$p} = $v;
}
1;

以上です。                                                    >>10. CPAN