2013年3月5日火曜日

クラスを作る

Perlでクラスを実装するには、以下のようにpackageとuseを組み合わせます。

main.pl

#!/usr/opt/local/bin/perl;
package main;
use utf8;
use TestClass; # TestClassを使用する

$c = TestClass->new(); # TestClassを生成する
$c->hello();


呼び込むクラスのファイル名は・・・.pm(plではありません)とします。

TestClass.pm


package TestClass;                                                                                                      
use utf8;

sub new {
    my $self = shift; # Perlのお約束で引数の先頭は自動的にクラス名が入るので、shiftで取得します

    my $member = {  # メンバ変数を作ってます
        mem1=>1,
        mem2=>2,
        mem3=>3,
    };
    return bless $member, $self; # blessでメンバ変数とクラスを関連付けたものを返却します
}

sub hello {
    print "Hi! I'm TestClass.\n";
}

1; # パッケージの読み込み結果(1:成功)を返却する



呼び込まれる側のソースですが、package句でクラス名を宣言する他に、最後の行で「1;」を書いて置かなければならないのが忘れやすいので注意が必要です。




0 件のコメント:

コメントを投稿