クラス作成で最小の状態は以下の通り
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 件のコメント:
コメントを投稿