Translate

2013年8月17日土曜日

Perlのクラス作成 メモ

Perlのクラス作成について自分用のチートシート的にまとめておく

クラス作成で最小の状態は以下の通り
package クラス名;

sub new{
    return bless {}, shift;
}

1;




面積を求めるRectangleクラスを例に考える
コンストラクタでwidth と heightの値を設定し
getAreaで面積を求める

ファイル名:lib/Rectangle.pm
package Rectangle;
use strict;
use warnings;
use utf8;
binmode STDERR, ":utf8";

my ($width, $height);

sub new{
    return bless {}, shift;                                                        
}

sub setSize{
    my $self = shift;

    if(@_!=2){die("setSizeの引数を2つ指定してください(width, height)")}
    $width  = $_[0];
    $height = $_[1];
}

sub getArea{
    my $self = shift;
    return $width * $height;
}

1;

ファイル:Sample.pl
use strict;                                                                        
use warnings;
use utf8;
use feature 'say';
binmode STDOUT, ":utf8";

use lib qw(lib);
use Rectangle;

my $r = Rectangle->new();
$r->setSize(123, 45);
say $r->getArea();

0 件のコメント: